继承了一段代码,其中插件更新已开始导致此错误
Fatal error: Call to a member function getId() on a non-object in...
有问题的行是$shippingId = $order->getShippingAddress()->getId();
对周围代码的更新意味着该函数不返回任何内容是正常的,并且代码的其余部分可以在 $shippingId
不存在的情况下运行
我需要的是一种表达的方法
if ($shippingId = $order->getShippingAddress()->getId() WORKS)
do_these_things()
然后如果没有则继续执行,而不是出错
最佳答案
我会这样做:
if (isset($order->getShippingAddress()) && is_object($order->getShippingAddress()) ) {
/* It is an object and it isn't null */
} else {
/* It doesn't */
}
isset()
检查表达式是否不为空并且具有值(以避免空指向)和 is_object()
检查这样的表达式是否是一个对象。
关于php - 捕获 'call to a member function on a non-object'的最安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24785398/