"일반적으로 말해서 클래스의 속성은 항상 비공개로 정의하는 것이 현실적인 논리에 더 부합합니다.
그러나 속성을 읽고 할당하는 작업이 매우 빈번하므로 PHP5에서는 속성을 가져오고 할당하고 속성을 확인하기 위해 "__get()" 및 "__set()" 두 함수가 미리 정의되어 있습니다. " 및 "__unset()" 메서드를 사용하여 속성을 삭제합니다.
각 속성에 대한 설정 및 가져오기 메소드가 있습니다. PHP5에는 속성 값을 설정하고 가져오기 위한 특수 메소드인 "__set()" 및 "__get()"가 제공됩니다. 기본적으로 클래스에 추가되지만 생성자 메서드(__construct())와 마찬가지로 다음과 같이 이 두 메서드를 추가할 수 있습니다. 물론 추가할 수도 있습니다. 개인 스타일에 따라: "
<?php //拦截器的使用 class Computer{ private $name; private $price; private $cpu; private $clocked; //拦截器之赋值 public function __set($key,$value){ //那么:$key=name $value="联想" 则有: $this->name="联想" return $this->$key=$value; } //拦截器之取值 public function __get($key){ if (isset($key)){ //那么: $key=name 则$this->name 所以自然就return了"联想" return $this->$key; }else { return NULL; } } } //正是因为的拦截器存在,才能如此用 $computer=new Computer(); $computer->name="联想"; $computer->price=5600; $computer->cpu="八核"; $computer->clocked="1600hz"; echo $computer->name; echo $computer->price; echo $computer->cpu; echo $computer->clocked;
위 내용은 PHP 인터셉터의 __set() 및 __get()에 대한 이해와 사용에 대해 편집자가 가져온 전체 내용입니다. Script Home에 많은 지원을 바랍니다~