博客列表 >__isset($name) __unset($name)魔术方法调用

__isset($name) __unset($name)魔术方法调用

艾克的博客
艾克的博客原创
2018年01月13日 16:18:18750浏览
<?php
/**
 * __isset($name):用在类外部,检测一个不存在或者无权限访问的属性的时候,自动调用
 * __unset($name):用在类外部,销毁一个不存在或者无权限访问的属性的时候,自动调用
 */
class Dome
{
    //创建一个私有属性
    private $name = 'peter';
    private $sex = 'male';
    public function __isset($name)
    {
        if ($name == 'sex') {
            return false;
        }
        return isset($this->name);
    }
    //销毁name属性
    public function __unset($name)
    {
        if ($name == '$sex') {
            return false;//不允许销毁性别属性值
        }
       unset($this->name);
    }
   public function __get($name)
   {
       return $this->$name;
   }
}
$obj = new Dome;
echo isset($obj->name) ? 'yes' : 'no';
echo '<hr>';
echo isset($obj->sex) ? 'yes' : 'no';
unset($obj->name);//销毁name属性


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议