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

mar*_*ila -2 php oop variables object

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

$templateId = $page->getTemplate()->getId();
Run Code Online (Sandbox Code Playgroud)

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

我的方法:

$templateId = property_exists($page->getTemplate()->getId()) ? $page->getTemplate()->getId() : "";
Run Code Online (Sandbox Code Playgroud)

错误:

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

Max*_*rov 5

getId()不是财产。是方法。您可以使用method_exists()功能检查方法的存在

$templateId = method_exists($page->getTemplate(), 'getId') ? $page->getTemplate()->getId() : ""
Run Code Online (Sandbox Code Playgroud)