В чем разница между этими методами и каким образом правильно проверяется на NULL? - PullRequest
4 голосов
/ 13 августа 2011

Все три метода являются проверкой на ноль,

if($sth == NULL)

if($sth === NULL)

if(is_null($sth))

какой путь правильный?

Ответы [ 3 ]

11 голосов
/ 13 августа 2011

Они проверяют три разные вещи:

if ($sth == NULL)

Это проверяет, равен ли $sth свободно null. Это означает, что это прошло бы, если бы $sth было на самом деле 0.

if ($sth === NULL)

Это проверяет, точно ли $sth равно null.

if (is_null($sth))

Это проверяет, является ли тип из $sth нулевым типом (другие проверяют значение из $sth).

Методы === и is_null всегда дают один и тот же ответ; == иногда даст другой ответ.

1 голос
/ 13 августа 2011

Первый проверяет только, равен ли $sth NULL, 0 также будет истинным. Второй проверяет, равен ли тип тоже. Таким образом, только NULL как значение для $sth будет истинным. Третий будет работать только с переменными, а не с результатами функций.

Также небольшой совет: время от времени со мной случается, что я неправильно набираю if($sth == NULL) до if($sth = NULL), что приводит к трудностям при поиске ошибок. Лучше наберите if(NULL == $sth), где вы получите ошибку интерпретатора, если напишите ее неправильно, которая укажет вам правильное направление.

0 голосов
/ 13 августа 2011

Я бы использовал

if(is_null($sth))

но я думаю, что либо хорошо

...