Я всегда делал это if($foo!==$bar)
, но я понял, что тоже if($foo!=$bar)
. Double =
все еще работает и всегда работал на меня, но всякий раз, когда я ищу PHP-операторов, я не нахожу информацию о двойном =
, поэтому я предполагаю, что я всегда делал это неправильно, но он работает в любом случае. Так что я должен изменить все свои !==
на !=
только ради этого?php не равно! = И! ==
ответ
==
и !=
не учитывают тип данных переменных, которые вы сравниваете. Таким образом, они бы все вернуть верно:
'0' == 0
false == 0
NULL == false
===
и !==
делать принимать во внимание тип данных. Это означает, что сравнение строки с логическим будет никогда быть истинным, потому что они имеют разные типы, например. Все они будут возвращать ложь:
'0' === 0
false === 0
NULL === false
Вы должны сравнить типы данных для функций, которые возвращают значения, которые могли бы быть неоднозначным truthy/falsy значения. Известным примером является 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
Вы можете найти информацию здесь: http://www.php.net/manual/en/language.operators.comparison.php
Это мало, потому что он не был добавлен до PHP4. То, что у вас есть, хорошо, хотя, если вы знаете, что может быть разница в типах, то это намного лучшее сравнение, так как для сравнения используется значение и, а не просто значение.
! == должны соответствовать значению и типа данных
! = Просто соответствует значению, не обращая внимание от типа данных
$num = '1';
$num2 = 1;
$num == $num2; // returns true
$num === $num2; // returns false because $num is a string and $num2 is an integer
$a !== $b
ИСТИНА если $a
не равен $b
, или они не того же типа
См. http://php.net/manual/en/language.operators.comparison.php
- 1. PHP, если не равно (! =) И или (||) вопрос
- 2. C++ равно, не равно,
- 3. PHP - Равно это не Равно, но должен быть
- 4. Не равно в PHP не работает
- 5. PHP: Сравните и покажите, если значение равно
- 6. Как-то 1 не равно 1 (PHP)
- 7. Регулярное выражение PHP Help, если не равно
- 8. Примечание равно (! =) Не работает в PHP
- 9. Обновление не равно и Null
- 10. setDestinationInExternalPublicDir и getExternalStorageDirectory не равно
- 11. PHP: 2258574.18 не равно 2058555.18 + 200019 - 0
- 12. Разница между операторами «не равно» <> и! = В PHP
- 13. Почему PHP есть два «не равно» операторы (= и <>!)
- 14. PHP и MySQL - Петля запрос, если значение не равно нулю
- 15. Проверка формы PHP, где значение не равно
- 16. PHP Logic - IF тоже не равно
- 17. Вопросительный знак равно, не работает на PHP
- 18. PHP, если не равно нулю, то
- 19. Выберите, где поле не равно Mysql Php
- 20. Javascript Если не равно или не равно
- 21. CSS границы и отступы не все равно
- 22. Сравнение строк не равно
- 23. Eloquent - где не равно
- 24. Равно, но не больше или равно?
- 25. Странный двойник равно поведение (PHP)
- 26. PHP посмотреть, сколько символов равно
- 27. Несколько шаблонов поиска (равно плюс не равно)
- 28. Показать где равно 0 (PHP)
- 29. Равно SQL%%%, но в PHP
- 30. Значение флажка равно переменной php
Возможный дубликат (HTTP [Как сделать PHP равенства (== двойной равно) и идентичность (=== тройные Равен), операторы сравнения отличаются?]: // StackOverflow. ком/вопросы/80646 /, как-ду-The-PHP-равенство-дабл-равно-и-личность-тройным равна-Comp) – nawfal