Как правильно сравнивать на null?

filter

Новичок
Как правильно сравнивать на null?

Привет!

Наткнулся на интересный случай.
Оказалось, что пустой массив - это null ;)

PHP:
$test = array();
echo  (int)($test == null);  // true
echo  (int)(is_null($test)); //false

Получается, что проверять на null надо только функцией is_null().
Может в доке есть описание такой ситуации, наверняка я не первый "счастливчик"?


A variable is considered to be NULL if

it has been assigned the constant NULL.

it has not been set to any value yet.

it has been unset().
array() == it has not been set to any value yet. ?

у меня php4.4.0/win - на других версиях не проверял.
 

Panchous

Павел
Код:
[php]
$test = array(); 
var_dump($test == null);  // true 
var_dump(is_null($test)); //false
[/php]
____________
PHP 5.1.3
 

Lews

Новичок
Re: Как правильно сравнивать на null?

Ты переменной присвоил значение - пустой массив. Так что все верно.
 

Lews

Новичок
Re: Re: Как правильно сравнивать на null?

А в первом случае происходит неявное преобразование типов
 

filter

Новичок
Автор оригинала: Сергей Тарасов
Учим правила сравнения с NULL в PHP! :))
:) ну лично для меня логика не понятна.
Если array() - это уже значение, то как сравнение с null может давать положительный результат :).

too much magic :)

-~{}~ 02.05.06 14:36:

Хорошо что мануал все-таки это отражает :)

http://www.php.net/manual/ru/types.comparisons.php
 

Lews

Новичок
== - это не чувствительное к типу сравнение. Даст истину, если значение при преобразовании к одному типу одинаковые.
(Проверь
var_dump((array)null);
var_dump(array());
)
=== - проверяет не только значение, но и тип.
 
Сверху