@NubasLol

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

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

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


$test = null;
        try {
            $test->delete();
         } catch (\Exception $e) {
            //мы сюда не попали
        }
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 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 не ловится.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
HTML Academy Санкт-Петербург
от 110 000 до 130 000 руб.
CENTRA Новокузнецк
от 50 000 руб.
от 1 500 до 2 500 usd.
20 марта 2019, в 01:07
1000 руб./за проект
20 марта 2019, в 00:27
2000 руб./за проект
19 марта 2019, в 23:14
6000 руб./за проект