PHP致命错误:在null上调用成员函数getId() - 它应该为null(有时),如何正确处理?

时间:2016-09-17 04:27:21

标签: php fatal-error symfony-2.8

有时候预期的结果应该是null,有时则不是(如果它不是null,我想要解析代码函数x。如果不是null,代码y解析)..不确定如何正确处理这个:

$myID = is_object($widget->getParent()->getId()) ? $widget->getParent()->getId() : '';

if (isset($myID)){
//....code here

结果:

PHP Fatal error:  Call to a member function getId() on null in \htdocs\program\widget\Controller\WidgetController.php on line 212

第212行:

$myID = is_object($widget->getParent()->getId()) ? $widget->getParent()->getId() : '';

我也尝试过各种变体:     is_object()     is_array()     null ==     null !==

似乎没有允许代码按预期处理。

1 个答案:

答案 0 :(得分:1)

听起来像$ widget-> getParent()返回null可能存储并首先检查它?我猜测getParent()可能会在根元素上返回null。

$myParent = widget->getParent();
if($myParent){
  $myID = is_object($myParent->getId()) ? $myParent->getId() : '';
  if (isset($myID)){
       //....code here
  }
} else {
  // Error handling
}