我跑
var_dump(isset($this->{$idName}));
var_dump($this->{$idName});
,结果是
bool(false)
string(1) "1"
我希望第一个是真的。我错过了一些明显的东西吗?
要克制,我正在尝试检查$idName
中存储的对象的属性是否已设置。在这种情况下$idName = "id"
所以我$this->id
正在检查。
$this->id
答案 0 :(得分:2)
看起来你错过了神奇的__isset()
方法。
public function __isset($name)
{
return isset($this->data[$name]);
}
根据您存储数据的位置进行更改。
来自Manual:
__ isset()是通过在不可访问的属性上调用isset()或empty()来触发的。
答案 1 :(得分:0)
如果此属性是私有/受保护的,并且您尝试使用$ this->属性语法直接从外部访问其值,请确保它不仅仅来自您的类__get()魔术方法。