$this​​->view_it_icon​ 의 의미

$this​​->view_it_icon​ 의 의미

QA

$this​​->view_it_icon​ 의 의미

본문

/skin/shop/main.10.skin.php에...

 

$this->view_it_icon​ 이렇게 되어있는데요

$this 는 충분히 알고있습니다 그런데   빨간것은 무슨 의미 입니까?

 화살표는 무엇이고, 화살표 다음에 있는 view_it_icon 는 클래스의 속성입니까?
​$this 객체와 view_it_icon 의 관계는 무엇을 나타내는 것 입니까?^^

($this 는 설명필요무)

 

$this->view_it_icon


예)

if ($this->view_it_icon) {

if ($this->view_it_name) { 

 

이 질문에 댓글 쓰기 :

답변 3

화살표의 의미는 참조 하겠다는 뜻입니다. 그것을 참조 하겠다.

즉, $this 현재의 객체에 속해 있는 속성이나 메소드, 변수, 다른 프로세스(함수) 등을 참조 하겠다는 의미 입니다.

언어에 따라서는 화살표 대신 .(점)을 쓰기도 합니다.

 

예를 들어 그누고등학교라는 학교가 있습니다.

내가 현재 그 고등학교 정문에 왔습니다.

나 자신이 학교에 들어와 있기 때문에 학교 전체는 $this로 핸들링을 소유 할 수도 있고 $그누고등학교라고 바로 지정 할 수도 있습니다.

그런데 이 학교 3학년1반에 홍길동이란 학생에게 도시락을 주어야 합니다.

문제는 학교 보안 때문에 직접 교실로 들어 갈 수는 없고 누군가를 시켜서 대신 전달 시켜야 합니다.

그래서

$this->3학년1반(도시락);

이렇게 표현 할 수 있는데 $this 클래스(객체) 안에는 "3학년1반"이라는 메소드가 있어야 합니다.

예를 들어 3학년1반에 접근 할 수 있는 담임선생님을 "3학년1반"이라는 메소드로 만들었다고 가정 합니다.

"3학년1반"이라는 메소드에(담임선생님) "도시락"이라는 메시지를 전달하면 그 개체가(함수) 실행하게 되는 것이죠. (졸지에 담임은 도시락 셔틀)

이건 클래스 내 함수를 실행 할 때 예이고 이런 방법으로 클래스 내에 존재하는 변수나 속성 등을 참조 할 때도 이런 구문으로 사용 합니다.

 

$학교 = new $그누고등학교;

if($학교->홍길동 == "학생") { ... } else { ... };

 

클래스 선언

class $그누고등학교 {

    $홍길동 = "학생";

    .....

 

   public function 3학년1반($msg){

       if($msg == "도시락") 3학년1반홍길동에게도시락셔틀();

   }

 

   ....

}

 

클래스 내의 자원에는 직접 접근이 되지 않기 때문에 이렇게 객체를 생성하고 참조 문자를 사용 합니다. 

 

클래스 내에서 자기 자신이 갖고 있는 다른 메소드를 참조 할 때는 $this를 사용하지만 그런 경우가 흔히 있는지는 모르겠습니다.

저도 실무에서 아직 그렇게 프로그래밍 해 본 적이 없는지라... ^^;

 

클래스 내의 프로퍼티 속성을 변경 하고자 할 때는 상속을 받아서 사용하는데 그누보드가 객체지향이였다면 많은 빌더 개발자들이 그누보드의 엔진을 수정하지 않고도 기능을 변경 하는데 조금 용이 했을지 모르겠습니다.

예를 들어 latest()라는 함수가 클래스 내에 메소드 형태로 존재 한다면 latest() 함수를 수정 하지 않고도 해당 클래스를 상속 받아서 스킨 경로라던가 링크 스타일 등 자기가 원하는 형태로 변경이 가능합니다.

view_it_icon 은 프로퍼티 입니다.

http://php.net/manual/kr/language.oop5.properties.php 

클래스 내의 view_it_icon 이라는 프로퍼티를 참조하겠다는 것입니다.
(그누보드는 모릅니다만 아마 사용하실려는 부분이 view_it_icon 에 설정되어 있고 그걸 끌어다 쓰기위한 것이라 보면 됩니다.)
즉 다시 말해 view_it_icon을 한번 설정해두고는 그걸 또 쓰기 위해 별도로 해당 페이지에서 코딩할 필요가 없다는 거죠
이게 객체지향의 꽃이죠

/lib/shop.lib.php 를 열어보세요..

관련 클래스가 있습니다.. 

답변을 작성하시기 전에 로그인 해주세요.
전체 16,797
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT