PHP 类常量与类属性的重载

2018-09-29 10:40:18 来源: 扬州新竹网络科技有限公司
类常量与类属性的重载
class Demo
{
    private $name='张三';
    private $lei='类';
    private $abc='品牌';
    const TXET_WORD='文本字';
    获取属性的重载
    public function __get($name)
    {
        if ($name == 'lei') {
            return $name.'不允许查看';
        }
        return $this->$name;
    }
    更新属性的重载
    public function __set($name, $value)
    {
        if ($name == 'lei') {
            echo $name.'不允许修改;
        }
        $this->$name = $value;
    }
    属性检测的重载
    public function __isset($name)
    {
        if ($name == 'lei') {
            return false;
        }
        return isset($this->$name);
    }
    销毁属性的重载
    public function __unset($name)
    {
        if ($name == 'name') {
            return false;
        }
        unset($this->$name);
    }
}
$demo=new Demo();
访问私有属性,如类中无__get()会出错,如有自动触发
echo '姓名: ', $demo->name;
当设置私有属性时,如类中无__set()会出错,如有自动触发
$demo->lei='你好';
$demo->name='hello';
echo Demo::TXET_WORD;
echo $demo->name;
当访问有属性时,外部检测不到,如果类_isset()就可以检测到
echo isset($demo->name)?'存在':'不存在';
echo isset($demo->lei)?'存在':'不存在';
销毁属性  __unset()
unset($demo->name);
echo $demo->name;
本站文章均为新竹网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,我们谢绝直接复制和抄袭!感谢...