Как я могу проверить, определен ли метод?

Я пытаюсь установить значение моей переменной в "", в случае, если getLove не определено:

`$money = $dollar->getCash()->getLove ?? "";`

Но я все еще получаю сообщение об ошибке:

Attempted to call an undefined method named "getLove" of class "Proxies__CG__\App\Entity\Happiness".

php.net/manual/en/function.method-exists.php
AbraCadaver 28.05.2019 17:26

Но в коде, который вы показываете, это не метод, а свойство.

AbraCadaver 28.05.2019 17:30

@AbraCadaver А, хорошо, вот почему метод не работает

peace_love 28.05.2019 17:30

@AbraCadaver $money = property_exists($dollar->getCash()->getLove(), 'getLove') ?? "";

peace_love 28.05.2019 17:36

Я получаю сообщение об ошибке: Предупреждение: первый параметр должен быть либо объектом, либо именем существующего класса`

peace_love 28.05.2019 17:38

Итак, это свойство getLove или метод getLove()???

AbraCadaver 28.05.2019 17:41

@AbraCadaver Теперь я в замешательстве. Вы сказали, что getLove() - это не метод, это свойство

peace_love 28.05.2019 17:43

Symfony говорит, что это метод

peace_love 28.05.2019 17:43

То, как вы его использовали, было свойством без (), но, вероятно, $money = method_exists($dollar, 'getLove') ? $dollar->getCash()->getLove() : "";

AbraCadaver 28.05.2019 17:44

@AbraCadaver Да, на самом деле это работает!

peace_love 28.05.2019 17:46

@AbraCadaver Подождите, на самом деле не работает. Теперь я получаю ошибку Call to a member function getLove() on null

peace_love 28.05.2019 17:51

Можно ли также проверить, является ли он нулевым?

peace_love 28.05.2019 17:53
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
12
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обратите внимание, что при использовании метод_существует не учитывается "__call()".

Это правильный ответ: $money = method_exists($dollar,"getCash") ? $dollar->getCash()->getLove() : ''; Хотите обновить свой ответ вот так?

peace_love 13.09.2019 11:18

Другие вопросы по теме