== null) ... - ничего будет иметь поведение с проверкой на нул
Но если $this->var не объявить, то:
if ($this->var == null) ... - должен выдать ошибку инициализации переменной. В 7й так точно.
Если вы пользуетесь extract или другими меторадми, например фильтрацией данных, важно знать разницу между созданной пустой переменной, и не созданной.
На пример при отстраивании структуры DataMapper'a многие, да и тоже, пользуются динамическими переменными для создания и заполнения объектов
Банальный пример PDO::FETCH_OBJ, PDO::FETCH_CLASS и так далее. У меня в таких ситуациях не просто один класс, а с 4-5 классов и с 10 трейтов, Не сложно запутаться и создать переменную после, которой сейв репазитория будет выдавать ошибку
Это же наблюдается и на других вариантах, например в 5,3 или 5.4 отказались от конструкции
$data = '';
$data['vasya'] = 'Человечище';
Я думаю со временнем будут сглаживаться углы в нестандартном поведении
Поэтому если портируют код, проверки через стд функции приоритетнее чем сравнения...
если вам так хочется сравнивать тогда проверяйте через isset
isset($var) && $var!==null
Сугубо моё мнение...
Можете выключить notice и жить спокойно, но меня лично напрягают киллометровые лог файлы... а вас?
P.S С версиями могу ошибаться...
В случае если есть магия __get, isset не поможет, и тут как раз без разницы, is_null или ===null
Обсуждают сегодня