我知道你可以做到这一点
class Object
{
private $ar;
public function __isset($name)
{
return isset($this->ar[$name]);
}
}
然后可用于执行以下操作
$obj = new Object();
if (isset($obj->name)) { /* ... */ }
但是有办法做到这一点
$obj = new Object();
if (isset($obj)) { /* .... */ }
我可以使用$obj
魔术方法控制__isset()
状态在其自身对象上的返回。
答案 0 :(得分:2)
您只能定义一个新的全局函数myIsset()
或类似的东西来执行此操作。
function myIsset($obj = NULL)
{
...
}
使用$obj
检查变量isset
时,PHP不会与变量可能引用的对象进行交互。
答案 1 :(得分:2)
你不能,因为它没有任何意义(至少不是isset()
意图使用的方式)。所以isset($obj)
总是正确的,只要它指向某个对象而不是NULL / undefined。
答案 2 :(得分:0)