PHP Сравнение строк

Обычно для сравнения чего либо в PHP используется оператор ==, например:

if ($hello == "hello"){
   .......;
}

Но в PHP для сравнения строк лучше использовать тройной оператор ===. Дело в том, что раньше (старых версиях PHP) был один небольшой баг, связанный со сравнением с пустой строкой, например:

$hello == "hello";
if ($hello == "") echo "NULL string";

Несмотря на абсурдность, мы получили на выходе

NULL string

хотя на самом деле строка не является пустой. Дело в том что раньше PHP сводил все к числам. Строку которую нельзя было свести к числу получает значение “0”, как в нашей ситуации с переменной $hello. Поэтому для точности необходимо пользоваться ===, у которого нет такого недостатка

Аналогичная ситуация обстоит и с оператором !=, вместо него при работе со строчными переменными лучше использовать !==.

Добавить комментарий