所有
我有以下代码:
public function addElements()
{
$newArray = array();
for ($index = 0 ; $index < count($this->listOfElements) ; $index++)
{
$temp = $this->listOfElements[$index];
if (!is_null($temp) && !is_null($temp->getPlayerOb()))
{
echo "Player Name is: ".$temp->getPlayerOb()->getName();
array_push($newArray, $temp);
}
}
}
错误行是if (!is_null($temp) && !is_null($temp->getPlayerOb()))
,堆栈说:
Call to a member function getPlayerOb() on a non-object
由于我试图跳过空值
,我无法理解这里的问题答案 0 :(得分:6)
$temp
显然是非null
的非对象值。我不知道listOfElements
是什么,但是访问不存在的密钥可能会false
而不是null
。
您可以选择is_object
来代替:
if (is_object($temp) && !is_null($temp->getPlayerOb()))
然而,积极检查会更好。请查看instanceof
和班级名称:
if (($temp instanceof SomeClass) && !is_null($temp->getPlayerOb()))