Heim > php教程 > php手册 > Hauptteil

php 类中的各种拦截器

WBOY
Freigeben: 2016-06-06 19:54:35
Original
836 Leute haben es durchsucht

1、__get( $property ) 访问未定义的属性时调用 class lanjie{ function __get($name) { echo $name. property not found! ; }}$ob = new lanjie();echo $ob-g; 当我们调用对象$ob未定义的属性g时,调用拦截器__get()方法,输出“g property not found!”;

1、__get( $property ) 访问未定义的属性时调用

 


 

class lanjie
{
    function __get($name)
    {
        echo $name." property not found! ";
    }
}


$ob = new lanjie();
echo $ob->g;
Nach dem Login kopieren



当我们调用对象$ob未定义的属性g时,调用拦截器__get()方法,输出“g property not found!”;

 

 

 


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 ) );
Nach dem Login kopieren


这里我们可以很清楚的看到 , 当给未定义的‘name’赋值时 ,  会调用“__set()”


其他的还有 __call(), __isset() , __unset();

这里最有用和最常用的的是__call() , 当调用一个为存在的方法时被调用; __isset()是在对一个为定义的属性使用isset()函数时被调用, __unset是在对未定义的数以使用unset时被调用

 

http://blog.csdn.net/shuiping567541/article/details/7061258

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!