• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php类中的各种拦截器用法分析_PHP

php 搞代码 4年前 (2022-01-25) 15次浏览 已收录 0个评论

本文实例讲述了php类中的各种拦截器用法。分享给大家供大家参考。具体用法分析如下:

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

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

$ob = new lanjie();
echo $ob->g;

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

2、__set( $property , $value ) 给未定义的属性调用时赋值

class person  <br />{  <br />    private $_age;  <br />    private $_name;  <br />    function __set($name, $value)  <br />    {  <br />  <b style="color:transparent">(、本文来源gao@!dai!ma.com搞$$代^@码网*</b><i>搞gaodaima代码</i>      $method = "set".  ucfirst($name);  <br />        echo $method;  <br />        if(method_exists($this, $method) )  <br />        {  <br />            return $this->$method( $value );  <br />        }  <br />    }  <br />      <br />    function setName( $name )  <br />    {  <br />        $this->_name = $name;  <br />        if( !is_null($this->_name) )  <br />        {  <br />            $this->_name = strtoupper($this->_name);  <br />        }  <br />    }  <br />    function setAge( $age )  <br />    {  <br />        return $this->_age = (int)$age;  <br />    }  <br />}  <br />  <br />$p = new person();  <br />$p->name = 'bob';  <br />print_r( array( $p ) );

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

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

希望本文所述对大家的PHP程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php类中的各种拦截器用法分析_PHP

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址