您好,欢迎访问一九零五行业门户网

PHP魔术方法__ISSET、__UNSET使用实例

__isset()  – 在对类中属性或者非类中属性使用isset()方法的时候如果没有或者非公有属性,则自动执行__isset()的方法
__unset()- 在对类中属性或者非类中属性使用unset()方法的时候如果没有或者非公有属性,则自动执行__unset()的方法
代码如下:
/**
     * 针对类中的魔术方法 __isset() 和 __unset() 的例子
     */
class example {
    public $public;
    protected $protected;
    private $private;
public function __construct(){
        $this->public = 'pub';
        $this->protected = 'pro';
        $this->private = 'pri';
    }
public function __isset($var){
        echo '这里通过__isset()方法查看属性名为 '.$var.\n;
    }
public function __unset($var){
        echo '这里通过__unset()方法要销毁属性名为 '.$var.\n;
    }
}
$exa = new example;
echo '
';
var_dump(isset($exa->public));
echo \n;
var_dump(isset($exa->protected));
echo \n;
var_dump(isset($exa->private));
echo \n;
var_dump(isset($exa->novar));
echo \n;
echo '';
unset($exa->public);
var_dump($exa);
echo \n;
unset($exa->protected);
echo \n;
unset($exa->private);
echo \n;
unset($exa->novar);
echo \n;
结果如下:
bool(true)
这里通过__isset()方法查看属性名为 protected
bool(false)
这里通过__isset()方法查看属性名为 private
bool(false)
这里通过__isset()方法查看属性名为 novar
bool(false)
代码如下:
object(example)#1 (2) {
  [protected:protected]=>
  string(3) pro
  [private:private]=>
  string(3) pri
}
这里通过__unset()方法要销毁属性名为 protected
这里通过__unset()方法要销毁属性名为 private
这里通过__unset()方法要销毁属性名为 novar

其它类似信息

推荐信息