我已經實現了神奇的功能__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