Как я могу создать переменную, только если свойство объекта существует? - PullRequest
0 голосов
/ 15 апреля 2019

Я создаю переменную "шаблон" из объекта:

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

Но в некоторых случаях «template» не существует в «$ page». В этом случае я хочу, чтобы «$ templateId» был пустым.

Мой подход:

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

Ошибка:

Вызов функции-члена getId () в null

Ответы [ 4 ]

5 голосов
/ 15 апреля 2019

getId() не является собственностью. Это метод. Вы можете проверить существование метода с помощью функции method_exists()

$templateId = method_exists($page->getTemplate(), 'getId') ? $page->getTemplate()->getId() : ""
4 голосов
/ 15 апреля 2019
$templateId = $page->getTemplate() ? $page->getTemplate()->getId() : "";
0 голосов
/ 15 апреля 2019

Просто добавьте '@'

$templateId = @$page->getTemplate()->getId() ? $page->getTemplate()->getId() : "";
0 голосов
/ 15 апреля 2019

Использование if(obj.propertyname){}.

Таким образом, вы можете убедиться, что свойство существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...