개발 꿀팁/PHP

php 클래스의 각종 차단기

Jammie 2022. 9. 19. 14:44
반응형

1,__get ($property) 정의되지 않은 속성에 접근할 때 호출됨

class lanjie
{
    function __get($name)
    {
        echo $name." property not found! ";
    }
}
 
 
$ob = new lanjie();
echo $ob->g;

객체 $ob이 정의되지 않은 속성 g를 호출하면, "g property not found!" 를 출력하는 인터셉터_get() 메서드를 호출합니다.







2,__set ($property, $value) 정의되지 않은 속성 호출에 할당

class person
{
    private $_age;
    private $_name;
    function __set($name, $value)
    {
        $method = "set".  ucfirst($name);
        echo $method;
        if(method_exists($this, $method) )
        {
            return $this->$method( $value );
        }
    }
    
    function setName( $name )
    {
        $this->_name = $name;
        if( !is_null($this->_name) )
        {
            $this->_name = strtoupper($this->_name);
        }
    }
    function setAge( $age )
    {
        return $this->_age = (int)$age;
    }
}
 
$p = new person();
$p->name = 'bob';
print_r( array( $p ) );

정의되지 않은 'name' 에 할당될 때 "_set( )" 을 불러옵니다.


다른 것은 __call(), __isset(), __unset();

여기서 가장 유용하고 자주 사용하는 것은 __call( )입니다. 존재하는 방법으로 호출될 때 호출됩니다. __isset() 는 정의된 속성에 대해 isset () 함수를 사용할 때 호출됩니다. __unset 는 대미입니다.정의된 수가 unset을 사용할 때 호출됨

 

반응형

'개발 꿀팁 > PHP' 카테고리의 다른 글

PHP에서 PHPMailer로 메일 보내기  (0) 2022.09.20
thinkphp 사용자 지정 명령줄 만들기  (0) 2022.09.20
PHP에서 페이지 점프  (0) 2022.09.19
PHP 객체 지향 요점  (0) 2022.09.19
php-fpm과 swoole의 최신 성능 대비  (1) 2022.09.16