__get() - 접근할 수 없는 속성의 값을 읽을 때 __get()이 호출됩니다.
__set() - 접근할 수 없는 속성에 값을 할당할 때 __set()가 호출됩니다.
/**
* __get() __set()에 대한 명확한 이해
*/
클래스 예 {
//공개 속성
공개 $public = 'pub' ;
//보호됨 - 이 속성은 서브클래스에서 사용할 수 있습니다
보호됨 $보호됨 = '프로';
//비공개 - 이 속성은 이 클래스에서만 사용할 수 있습니다
비공개 $private = 'pri';
//액세스 객체의 속성이 존재하지 않거나 공개 속성이 아닌 경우 __get() 메서드를 자동으로 로드합니다.
공개 함수 __get($name){
'Call __get() method:'.$name;
을 반환합니다.
}
//객체의 속성에 값을 할당할 때 해당 속성이 존재하지 않거나 비공개 속성인 경우 __set() 메서드가 자동으로 로드됩니다.
공개 함수 __set($name,$value){
echo "nname:".$name.',value:'.$value."n";
}
}
$example = 새 예;
echo '
';
echo $example->public."n";
echo $example->protected."n";
echo $example->private."n";
echo $example->other."n";
echo '
';
$example->public = 'lic'; //이 할당은 성공했으며 아무것도 표시되지 않습니다
$example->보호됨 = 'tec';
$example->private = 'vat';
$example->other = 'er';
echo '
';
echo '공개 속성 인쇄:'.$example->public;
결과는 다음과 같습니다.
이름: protected, 값: tec
이름: 비공개, 값: vat
이름:기타,값:er
공개 속성 인쇄: lic