Comments 64
вобще странно почему NULL это абсолютный минус а не ноль.
+3
с другой стороны брать минимальное от интежера и "того что не имеет значения" как то странновато...
имхо пхпшники должны были это предусмотреть
имхо пхпшники должны были это предусмотреть
0
видимо разработчики были хитрыми людьми :)
+1
UFO just landed and posted this here
Вах, хи-хи, ха-ха. Как смешно.
-5
...если бы программисты читали документацию, таких постов бы не возникало - результат операции сравнения с NULL - есть NULL.
+6
по моему это просто шутка юмора.
0
как тогда объяснить?
$t = max(-273.15, NULL);
var_dump($t); // float(-273.15)
$t = max(-273.15, NULL);
var_dump($t); // float(-273.15)
+3
это можно обьяснить отсуствием стандартизации в пхп интерпритаторе ;)
две похожие функции могут возвращать совершенно непредсказуемые результаты - как тут :)
две похожие функции могут возвращать совершенно непредсказуемые результаты - как тут :)
0
Вероятно, зависит от версии PHP. У меня на 5.2.0-8 выдаётся NULL.
0
чорт, сорри, не увидел max)
0
хотя программирование давно забросил, по аналогии с троичной логикой (тру, вальс, нуль) можно сказать, что по сравнению с интежером НУЛЛ (ничто) воспринимается как минус бесконечность, что в принципе логично в случае минимума - пустое место всегда меньше, а цирфа больше пустого. с другой стороны, возможность нечеткого определения типа в данном случае абсурдна и может вызывать проблемы, если нулл возник случайно. что поделать, в самом разрешающем все си и не такие вещи случаются.
0
Утверждение верно только для СУБД, да и то не всегда. Например, в MS SQL есть опция ansi_null, позволяющая управлять этим поведением (убито несколько часов на дебаг когда-то...).
Не в мире баз данных я такого пока не встречал. Было бы интересно поулчить ссылки на соответствующие разделы в документации тех языков, где это есть.
Не в мире баз данных я такого пока не встречал. Было бы интересно поулчить ссылки на соответствующие разделы в документации тех языков, где это есть.
+2
http://en.wikipedia.org/wiki/Null_%28com…
http://msdn.microsoft.com/en-us/library/…(VS.80).aspx
Не по конкретным языкам, но по MS SQL и по NULL в целом. Объяснение вполне логичное, поэтому если какой-то язык будет давать свою трактовку, то, думаю, это неправильно и врядли задокументировано.
http://msdn.microsoft.com/en-us/library/…(VS.80).aspx
Не по конкретным языкам, но по MS SQL и по NULL в целом. Объяснение вполне логичное, поэтому если какой-то язык будет давать свою трактовку, то, думаю, это неправильно и врядли задокументировано.
+1
Nullable Types (C# Programming Guide). В частности, если один из операндов null, сравнение с ним вседа дает false, а результат любых арифметических дейсвий - null. Это примерно как действия с числами NaN при операциях с плавающей точкой.
0
В C# оно нужно не для этого. Проблема в том, что: «сравнение с ним вседа дает false», а должно давать null!
Вот демонстрация того, что в C# null равен null:
Console.Write(new Nullable () == new Nullable () ? "habraoops" : "null != null");
На экран будет выведено: habraoops
Вот демонстрация того, что в C# null равен null:
Console.Write(new Nullable () == new Nullable () ? "habraoops" : "null != null");
На экран будет выведено: habraoops
0
Вы хотели сказать, должно давать false? А должно ли?
0
вот результаты сравнения разных типов в т.ч. и null
http://php.mirror.camelnetwork.com/manual/ru/types.comparisons.php
http://php.mirror.camelnetwork.com/manual/ru/types.comparisons.php
0
по-моему пост просто проверяет сколько у кого свободного времени. есть ли у человека время комментировать всякую фигню или нет...
шутку оценил - плоский английский юмор.
шутку оценил - плоский английский юмор.
0
хм все баги это интересные факты ?:)
+1
Не все. Но этот мне показался интересным. Любые арифметические операции с NULL воспринимают его как 0. Кроме декремента.
0
это то и плохо что воспринимает
цитата из мана пхп
Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL - это единственно возможное значение типа NULL.
так почему ее должны воспринимать как 0 любые арифметические операции если у нее нет значения - даже значения 0 ?:) это баг
цитата из мана пхп
Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL - это единственно возможное значение типа NULL.
так почему ее должны воспринимать как 0 любые арифметические операции если у нее нет значения - даже значения 0 ?:) это баг
0
Видимо, операции инкремента и декремента кодировали разные команды О_о
Одна вставила проверку на NULL, а другая забыла и приводит к int...
Одна вставила проверку на NULL, а другая забыла и приводит к int...
0
видимо потому что в ПХП работает автоматической приведение любого типа к любому. поскольку ++ и операции арифметические - нулл должен приводится к числу.
+1
Это не баг, это нестрогая типизация )
0
Python
>>> repr(min(-453, None))
'None'
>>> repr(max(-453, None))
'-453'
>>>
+3
Плохо :(
0
Наверное, всё-таки специально (раз уж в двух языках встретилось).
Может, для сортировок?
Может, для сортировок?
0
Perl:
То есть, вполне ожидаемое неявное приведение undef к 0.
$a = undef;
$b = -273.15;
$c = $a <= $b ? $a : $b; # $c == $b
$d = $a >= $b ? $a : $b; # $d == $a
$e = $a == 0 ? 1 : 0 # $e == 1
То есть, вполне ожидаемое неявное приведение undef к 0.
0
>>> p [-273.15, nil].min
comparison of Float with nil failed (ArgumentError)
>>> p [-273.15, nil].max
undefined method `<=>' for nil:NilClass (NoMethodError)
так-то :)
comparison of Float with nil failed (ArgumentError)
>>> p [-273.15, nil].max
undefined method `<=>' for nil:NilClass (NoMethodError)
так-то :)
0
Чо за ху*н??? Няяяяхаа! Пасмиялся!
-5
-273.15 beta than Null =)
+1
"Юмор на Хабре - Абсолютный нуль". Когда прочитала, первой реакцией было недоумение: "Каааак?? Обычно смешно..." А потом стало ясно, о чем речь =)
+5
Сегодня случайно не день добра(или как он там называется), нет?
0
Это недостаток нетипизированных языков непредсказуемость при работе с разными типами. Лучше уж Exception чем такой бред
+1
Кому-то лучше, кому-то хуже:) Кто-то спокойно пишет с учётом этих особенностей, кто-то забывает... Если нестрогая типизация заявлена в языке, имхо, глупо тыкать пальцем в любой "интересный" пример сравнения и говорить "гыыы, хренасе, а я думал будет по-другому", ибо, как тут уже сказали, сравнивать тёплое с мягким не есть гут.
0
читаю комменты и понимаю что на хабре людей даже с базовыми знаниями физики маловато... наверное поэтому народ либо совсем ничего не понимает, либо углубляется в специфику сравнения чего-либо с NULL... видимо магия абсолютного нуля далека от широких масс :)
грустно :(
грустно :(
0
Для полноты эффекта такие посты надо делать после часа ночи. Иначе эффекта может и не быть вовсе
0
UFO just landed and posted this here
Судя по комментам, при той же активности, вы скоро начнёте ОС писать, и уверен напишите аналог Widows, или *nix, да ещё под Веб. =)))
0
На самом деле тут все логично, всего скорей они NULL представляют как 0, а у отрицательное число в побитовом представление старший бит 1 т.е 00000000... < 10000000...
0
ActionScript 2.0
$t = Math.max(-273.15, null);
trace($t);
$t = Math.min(-273.15, null);
trace($t);
-> not a number =) в обоих случаях.
$t = Math.max(-273.15, null);
trace($t);
$t = Math.min(-273.15, null);
trace($t);
-> not a number =) в обоих случаях.
0
Sign up to leave a comment.
Абсолютный нуль