Php 为什么isset没有';当我重写神奇函数get和set时,t返回true

Php 为什么isset没有';当我重写神奇函数get和set时,t返回true,php,Php,我有以下代码 我可以知道,当我覆盖神奇函数\uuuu get和\uu set 我得到的输出是 $param->country : US isset($param->country) : \uu set和\uu get不处理isset。您还必须实现。\uuu set和\uu get不处理isset。您还必须实现。这是因为isset是一种不调用magic方法的语言构造,您还应该实现magic方法\u isset 另请参阅文档:这是因为isset是一种不调用magic方法的语言构造,

我有以下代码

我可以知道,当我覆盖神奇函数
\uuuu get
\uu set

我得到的输出是

$param->country : US
isset($param->country) : 


\uu set
\uu get
不处理
isset
。您还必须实现。

\uuu set
\uu get
不处理
isset
。您还必须实现。

这是因为
isset
是一种不调用magic方法的语言构造,您还应该实现magic方法
\u isset


另请参阅文档:

这是因为
isset
是一种不调用magic方法的语言构造,您还应该实现magic方法
\u isset

另请参见文档:

这是设计的。
isset
不是一个函数,它是一个语言构造,它不会自动调用
\uu get
。这就是为什么有一种神奇的方法

不过,您需要PHP>=5.1.0。

这是经过设计的。
isset
不是一个函数,它是一个语言构造,它不会自动调用
\uu get
。这就是为什么有一种神奇的方法

不过,您需要PHP>=5.1.0

<?php

class Param
{
    private $params = array();

    public function __get($name) {
        return $this->params[$name];
    }

    public function __set($name, $value) {
        $this->params[$name] = $value;
    }
}

$param = new Param();
$param->country = "US";
echo "\$param->country : " . $param->country . "\n";
echo "isset(\$param->country) : " . isset($param->country) . "\n";