__unset(),当对不可访问属性调用unset()时被调用。

看这个方法之前呢,我们也先来看一下 unset() 函数,unset()这个函数的作用是删除指定的变量且传回true,参数为要删除的变量。

那么如果在一个对象外部去删除对象内部的成员属性用unset()函数可以吗?

这里自然也是分两种情况:

1、 如果一个对象里面的成员属性是公有的,就可以使用这个函数在对象外面删除对象的公有属性。

2、 如果对象的成员属性是私有的,我使用这个函数就没有权限去删除。

虽然有以上两种情况,但我想说的是同样如果你在一个对象里面加上__unset()这个方法,就可以在对象的外部去删除对象的私有成员属性了。在对象里面加上了__unset()这个方法之后,在对象外部使用“unset()”函数删除对象内部的私有成员属性时,对象会自动调用__unset()函数来帮我们删除对象内部的私有成员属性。

请看如下代码:

<?phpclass Person{    public $sex;    private $name;    private $age;    public function __construct($name="",  $age=25, $sex='男')    {        $this->name = $name;        $this->age  = $age;        $this->sex  = $sex;    }    /**     * @param $content     *     * @return bool     */    public function __unset($content) {        echo "当在类外部使用unset()函数来删除私有成员时自动调用的<br>";        echo  isset($this->$content);    }}$person = new Person("小明", 25); // 初始赋值unset($person->sex);unset($person->name);unset($person->age);

运行结果:

当在类外部使用unset()函数来删除私有成员时自动调用的1当在类外部使用unset()函数来删除私有成员时自动调用的1

更多相关文章

  1. 在PHP中处理JSON数组以及对象
  2. 关于php mysqli函数的总结与详细介绍(二)
  3. 关于PHP Mysqli函数的一些整理以及详细介绍(一)
  4. 关于php mysqli函数的一些总结和实例(四)
  5. 关于php mysqli函数的一些总结和详细介绍(五)
  6. 关于php mysqli函数的一些总结及实例(三)
  7. php中函数的定义
  8. php面向对象三大特性
  9. php类和对象的关系

随机推荐

  1. 如何使用ASP.NET实现生成验证码功能的实
  2. 关于Asp.net MVC如何利用swupload来实现
  3. 关于asp.net如何获取浏览器访问的IP地址?
  4. C#中INI配置文件的图文代码详解
  5. 关于.net使用Cache框架如何给程序添加Cac
  6. C#中关于TCP粘包出现的问题解决的示例
  7. 如何使用C#自定义音乐播放器进度条的实例
  8. C#实现身份证识别功能的图文代码详解
  9. 关于ASP.NET MVC4如何使用PagedList.Mvc
  10. Windows服务在C#下如何创建(图)?