我试图做出一些感觉出以下简写PHP速记ifelse理解
$state = $account->getCity() ? $account->getCity()->getStates() : null;
我的理解是正确的?
如果$account->getCity()
存在的$account->getCity()->getStates()
的值赋给$state
变量其他分配是null
原因,我问这个是因为我米得到的错误
Error: Call to a member function getCity() on a non-object
如果代码$state = $account->getCity() ? $account->getCity()->getStates() : null;
不检查看看$account->getCity()
是否为空,那我该如何检查它。
我想实现的输出是
如果$account->getCity()
不为空分配的$account->getCity()->getStates()
到$state
其他值只是让它空
希望我不听起来太混乱了:)
你问的是*三元操作符*。这个错误并不是你的三元运算符是错的,而是你试图使用一个设计用于非物体对象上的方法的事实。你需要检查你定义'$ account'的位置,并确保它是一个对象,你可以在 – Qirel
@Qirel上使用getCity()方法,谢谢,我可以证实'$ account'是一个对象,有时候'getCity()'是空的,有时它不是,当它的'null'时抛出错误,这就是我想要处理的。我希望当'$ account-> getCity()'为'null'时'$ state'为null。 – Saadia
尝试'!empty($ account-> getCity())? $ account-> getCity() - > getStates():null;'代替。 – Qirel