我已经实现了神奇的功能__get()
和__set()
:导致错误
function __get($property) {
if(isset($this->$property)) {
return $this->$property;
} else {
return null;
}
}
function __set($property, $value) {
$this->$property = $value;
}
下面的代码工作正常:
$connect->Hammer = "DoubleClawed";
echo $connect->Hammer;
然而,当我跑我的一些单元测试,行:
$this->Id = (int) $configXML->ConfigurationFindResults->Configuration->Id;
给我:
试图让非对象的属性
有一些工作之前,其他神奇的设置变量。我也使用非魔术方法测试了这个代码,它工作。为什么这条线将它关闭? ($configXML
是一个SimpleXML对象)
你确定每个在这个链条中的元素是一个对象(例如:'$ configXML','$ configXML-> ConfigurationFindResults','$ configXML-> ConfigurationFindResults->配置'等)?看到错误之前的一些代码也是有帮助的。 – NullUserException
你确定整型转换没有立即运行吗?这将使它成为一个非对象。 – TheZ
难道你的魔法功能至少有点多余? PHP已经以这种方式没有它们(在未设置的属性上返回null),例如:http://codepad.org/7tS7CfFG – NullUserException