php не равно! = и! ==

Я всегда делал это, if($foo!==$bar) но я понял, что if($foo!=$bar) тоже правильно. Double = все еще работает и всегда работал на меня, но всякий раз, когда я ищу PHP-операторов, я не нахожу информацию о double = поэтому я предполагаю, что я всегда делал это неправильно, но он работает в любом случае. Так что я должен изменить все мои !== to != Только ради этого?

== и != не учитывайте тип данных переменных, которые вы сравниваете. Таким образом, все они вернутся:

 '0' == 0 false == 0 NULL == false 

=== и !== учитывают тип данных. Это означает, что сравнение строки с булевым никогда не будет истинным, потому что они имеют разные типы, например. Все они вернут false:

 '0' === 0 false === 0 NULL === false 

Вы должны сравнивать типы данных для функций, возвращающих значения, которые могут иметь неоднозначное значение правды / фальшивости. Известным примером является strpos() :

 // This returns 0 because F exists as the first character, but as my above example, // 0 could mean false, so using == or != would return an incorrect result var_dump(strpos('Foo', 'F') != false); // bool(false) var_dump(strpos('Foo', 'F') !== false); // bool(true), it exists so false isn't returned 

! == должен соответствовать значению и типу данных

! = просто соответствует значению, игнорирующему тип данных

 $num = '1'; $num2 = 1; $num == $num2; // returns true $num === $num2; // returns false because $num is a string and $num2 is an integer 

$a !== $b TRUE, если $a не равно $b , или они не одного типа

См. http://php.net/manual/en/language.operators.comparison.php

Вы можете найти информацию здесь: http://www.php.net/manual/en/language.operators.comparison.php

Это мало, потому что он не был добавлен до PHP4. То, что у вас есть, хорошо, хотя, если вы знаете, что может существовать разность типов, то это гораздо лучшее сравнение, так как это тестирование значения и типа в сравнении, а не просто значение.