仅当对象属性存在时才如何创建变量?

时间:2019-04-15 09:49:48

标签: php oop object variables

我正在从一个对象创建变量“模板”:

$templateId = $page->getTemplate()->getId();

但是在某些情况下,“ $ page”中不存在“模板”。在这种情况下,我希望“ $ templateId”为空。

我的方法:

$templateId = property_exists($page->getTemplate()->getId()) ? $page->getTemplate()->getId() : "";

错误:

  

在null上调用成员函数getId()

4 个答案:

答案 0 :(得分:5)

getId()不是该属性。是方法。您可以使用method_exists()函数检查方法是否存在

$templateId = method_exists($page->getTemplate(), 'getId') ? $page->getTemplate()->getId() : ""

答案 1 :(得分:4)

$templateId = $page->getTemplate() ? $page->getTemplate()->getId() : "";

答案 2 :(得分:0)

使用if(obj.propertyname){}

这样,您可以确保该属性必须存在。

答案 3 :(得分:0)

只需添加“ @”

$templateId = @$page->getTemplate()->getId() ? $page->getTemplate()->getId() : "";