이 기사의 예에서는 PHP 클래스의 다양한 인터셉터 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 사용량 분석은 다음과 같습니다.
1. 정의되지 않은 속성에 액세스할 때 __get( $property )가 호출됩니다.
class lanjie
{
함수 __get($name)
{
echo $name." 속성을 찾을 수 없습니다! ";
}
}
$ob = 새로운 란지()
에코 $ob->g;
$ob 객체의 정의되지 않은 속성 g를 호출하면 인터셉터 __get() 메서드가 호출되고 "g 속성을 찾을 수 없습니다!"가 출력됩니다.
2. __set( $property , $value )는 정의되지 않은 속성을 호출할 때 값을 할당합니다.
{
비공개 $_age
비공개 $_name
함수 __set($name, $value)
{
$method = "설정". ucfirst($name)
에코 $메서드
If(method_exists($this, $method) )
~
$this->$method( $value )를 반환합니다.
~
}
함수 setName( $name )
{
$this->_name = $name;
If( !is_null($this->_name) )
~
$this->_name = strtoupper($this->_name)
~
}
함수 setAge( $age )
{
return $this->_age = (int)$age;
}
}
$p = 새로운 사람()
$p->이름 = '밥'
print_r( 배열( $p ) );
여기서 정의되지 않은 'name'에 값을 할당하면 "__set()"이 호출된다는 것을 명확하게 알 수 있습니다.
기타에는 __call(), __isset() , __unset()이 포함됩니다.
여기서 가장 유용하고 일반적으로 사용되는 것은 기존 메서드를 호출할 때 호출되는 __call(), 정의되지 않은 속성에 대해 isset() 함수를 사용할 때 호출되는 __isset() 및 메서드를 호출할 때 호출되는 __unset입니다. 정의되지 않은 속성입니다. unset
을 사용하면 정의된 번호가 호출됩니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.