Top.Mail.Ru
? ?

Previous Entry Share Flag Next Entry
страсти агностика
dysto
Пишу код.
Только что ушло полчаса жизни и неизвестное количество нервных клеток на поиски несуществующего бага. По пути - много рефлексий о вреде излишков кофеина и ранних симптомах всякого такого.
А потом - Прозрение.
php не понимает разницы между null и 0
То есть с точки зрения создателей языка "мы не знаем сколько картошки в этом мешке, а может быть и вовсе мешка никакого нет" и "этот мешок пустой" - одно и то же.

$a = 0;
if($a == null) echo "yes";
else echo "no";

- проверьте сами, кто не верит, выдает "yes".
P.S.
"Расмус Лердорф родился 22-го ноября 1968-го года в городе Кекертарсуак, в Гренландии, автономной островной территории Дании. С 1988-го по 1993-й год он учился в Университете Уотерлу в Канаде, который окончил со степенью бакалавра программиста систем инженерного дизайна."
- а существует ли вообще разумная жизнь IT за пределами США?



  • 1
Null всё же не значит "мы не знаем сколько картошки в этом мешке, а может быть и вовсе мешка никакого нет"

Это строго "вовсе мешка никакого нет"

я имел в виду что переменная - мешок, ее значение - картошка
если переменная определена, но значение ей не присвоено, то это же тоже null, разве нет?

а если надо сайт быстро запилить?

В чем проблема если почти 50 лет

# define NULL (0)

Было правдой жизни прямо так и написанной в соответствующем хидере.

вам не понять, какое это потрясение для неподготовленного человека с тонкой душевной организацией

Знаете - обнаружение что при сравнении Integer в Жабе тонкая разница == и equals проявляется между числами по модулю меньше 128 и прочими - было откровением даже для весьма подготовленного меня.

Причину понял сразу - но вот сам факт был неожиданностью. Не ждал.

Богемик - да, Галковский - только если бы ему кто-то объяснил в чем тут прикол.

а что пехапэсрач еще не начался?

В PHP есть два разных сравнения - без учета типов аргументов (==) и с учетом типа аргументов (===). При сравнении без учета типа 0, NULL и FALSE одинаковы, при сравнении с учетом типа - нет. Для такого языка как PHP это вполне нормальный дизайн.

PS: Я поражен, на что мировой разум потратил 30 комментов =)

не знаю что и сказать
о_О
ах ну да - спасибо, вы вернули мне веру в человечество

значит все свелось к банальному незнанию матчасти, а с миром все в порядке
P.S. я надеюсь оператора (====) не существует? )

  • 1