[ php ] [ class ] 클래스( class )에서 지시자( -> )의 의미 > php

본문 바로가기

사이트 내 전체검색

php

[ php ] [ class ] 클래스( class )에서 지시자( -> )의 의미

작성일 18-09-30 05:07

페이지 정보

작성자 웹지기 조회 19,806회 댓글 0건

본문

객체는 자신만의 변수와 함수 가질 수 있습니다. 객체에서 변수, 함수는 각각 멤버변수 , 메쏘드 라고 불립니다.

 

class test {

   var $a; // 멤버변수 (클래스 안에서 변수를 정의 할때는 var를 반드시 적어 주어야 한다.)

   var $b;

 

   function aaa() { // 메쏘드 (클래스안의 함수를 메쏘드 라고 한다.)

   $this->abcd = " 알파벳";  // 메쏘드안에서 변수 정의할 때는 $this를 붙혀 준다.

   }

}

위와 같이 test 란 class 가 있고 이 class 를 사용하기 위해선 아래와 같이 객체를 생성합니다.

 

$obj = new test;

 

이제 $obj 에 새로운 객체하나가 생성되었고 이 객체는 $a, $b 라는 멤버변수와 aaa() 라는 메쏘드 하나를 포함하고 있습니다.

 

만약 멤버변수나 메쏘드를 사용하고 싶다면 아래와 같이 하시면 됩니다.

 

echo $obj->a; // 멤버변수 $a 값을 출력

$tmp = $obj->aaa(); // 메쏘드 aaa() 를 실행시키고 그 값을 $tmp 에 저장

 

 

-> 를 글로 해석할 때는 '무엇 안에 있는' 이라고 표현하면 해석이 편하리라 생각됩니다.

즉 $obj 안에 있는 $a 를 출력 , $obj 안에 있는 aaa() 실행

 

자 그럼 '->' 이것이 무엇을 하는 것인지 어느정도 감이 오시리라 생각됩니다.

 

 

이제 아래 예제를 보세요.

[code] 

class test {

   var $a;

   var $b;

 

   function aaa() {

      echo $this->a;

   }

}

[/code]

위와 같이 aaa() 메쏘드에서 자신이 속한 객체의 멤버변수 또는 메쏘드에 접근 또는 실행 시킬때는 this 키워드를 사용하게 됩니다. 이 this 는 단어 그대로 현재 객체를 뜻 하는 것입니다. 즉 외부 다른 객체의 변수, 메쏘드와 자신의 변수,메쏘드를 구분하는 것이라 생각하셔도 되죠...^^

 

 

자 그럼 질문 하신 내용에 있는 구문을 한번 봅시다.

 

$this->cut_str_size = $data->info->cut_str_size;

 

우선 앞에 있는 것 부터 보면...

 

"현재 객체 안에 있는 cut_str_size 멤버변수에" 라고 해석할 수 있겠습니다.

그럼 이 멤버변수에 무엇을 저장하느냐?

 

"$data 객에 안에 있는 info 객체 안에 있는 cut_str_size 멤버변수의 값" 을 저장해라.

 

* 참고로 -> 를 사용하면 그 앞에 있는 것은 무조건 객체가 됩니다.

그리고 info 가 왜 객체 인지는 $data 가 생성되는 부분을 보시면 확인하실 수 있을텐데요.

DB 쿼리 후 fetch() 라는 메쏘드를 이용하고 있습니다. 그런데 이 fetch() 라는 메쏘드에서는

mysql_fetch_object() 이란 php 함수를 사용하고 있습니다. 그리고 이 함수는 리턴값으로 객체를 반환합니다.

 

즉 $tmp = mysql_fetch_object($result); 이렇게 하게되면 $tmp 값에는 객체가 저장이 되고

값을 사용하고 싶다면 $tmp->필드명 식으로 접근 하게됩니다.

 

이제 $data->info->cut_str_size 를 이해하실 수 있을꺼라 생각되네요...^^

 

 $cond_list = "module_srl = '{$module_srl}'";

  

위 라인은 그냥 $cond_list 에 module_srl = '$module_srl변수값' 문자열을 저장하는 것 뿐입니다.

$module_srl 변수값이 test 라면 module_srl = 'test' 이렇게 저장되죠.

  

$oDB->select('*','articles',$cond_list,$order,0,$rows);

 

위 라인은 $oDB 객에 안에 있는 select() 이란 메쏘드를 호출하고 있으며 select() 메쏘드가 실행될때 필요로 하는 인자들을 전달 하고 있는 라인입니다. 이 라인의 결과를 예측해 보시려면 select() 메쏘드를 확인해 보세요.

 

 $tmp->url = zUrl::getViewUrl($tmp->article_srl);

 

마지막 이 라인은 $tmp 객체 안에 있는 url 멤버변수에...

zUrl 객체의 getViewUrl() 메쏘드의 실행 결과를 저장하라는 것입니다.

 

:: 는 new 라는 지시자로 class를 미리 객체화 시켜놓지 않고 사용하는 시점에서 객체가 생성되고 지정된 메쏘드가 실행되도록 하는 접근자 입니다.


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 82건 3 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기