>백엔드 개발 >PHP 튜토리얼 >PHP class_php 스킬의 다양한 인터셉터 사용 분석

PHP class_php 스킬의 다양한 인터셉터 사용 분석

WBOY
WBOY원래의
2016-05-16 20:33:131235검색

이 기사의 예에서는 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 프로그래밍 설계에 도움이 되기를 바랍니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.