@NubasLol

Php в чем разница вызова свойтсва или метода?

Интересна разница менно в самом языке, почему так работает?

$test = null;
        try {
            $test->delete;
         } catch (\Exception $e) {
            //все ок мы сюда попали
        }


$test = null;
        try {
            $test->delete();
         } catch (\Exception $e) {
            //мы сюда не попали
        }
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
Васе 20 лет, он весит 80 килограмм, умеет копать и пить пиво.

Его свойства:
Вася->имя
Вася->вес
Вася->возраст

Его методы:
Вася->копай()
Вася->пей()


Зачастую свойства нельзя "вызвать", если в свойстве хранится какой-то примитив, например. Можно его прочитать и установить, если оно не защищено, конечно.
php.net/manual/ru/language.oop5.basic.php
Ответ написан
@pocifis
PHP-разработчик
Если я не ошибаюсь, при попытке получить свойство из пустого объекта, php генерирует notice, который можно проигнорировать, а вот при попытке вызвать метод, уже будет fatal error, однако php 7 так же генерирует исключение, которое можно отловить.
Ответ написан
Комментировать
vman
@vman
$test->delete;

это не вызовет никакой ошибки, а вернет NULL

$test->delete();

здесь будет не Exception, а Fatal error, поэтому в try catch не ловится.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы