看这个要领之前呢,我们也先来看一下 unset() 函数,unset()这个函数的作用是删除指定的变量且传回true,参数为要删除的变量。
那末假如在一个对象外部去删除对象内部的成员属性用unset()函数可以吗?
这里天然也是分两种状况:
1、 假如一个对象内里的成员属性是公有的,就能够运用这个函数在对象表面删除对象的公有属性。
2、 假如对象的成员属性是私有的,我运用这个函数就没有权限去删除。
虽然有以上两种状况,但我想说的是一样假如你在一个对象内里加上__unset()这个要领,就能够在对象的外部去删除对象的私有成员属性了。在对象内里加上了__unset()这个要领以后,在对象外部运用“unset()”函数删除对象内部的私有成员属性时,对象会自动挪用__unset()函数来帮我们删除对象内部的私有成员属性。
请看以下代码:
<?php class 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
以上就是PHP中__unset()要领详解的细致内容,更多请关注ki4网别的相干文章!