我一直這樣做if($foo!==$bar)
但我意識到if($foo!=$bar)
也是正確的。雙=
仍然有效,一直爲我工作,但每當我搜索PHP運營商,我發現沒有雙=
信息,所以我認爲我一直做這個錯誤,但它的作品無論如何。那麼我應該爲了它而將我所有的!==
更改爲!=
?php不等於!=和!==
39
A
回答
92
==
和!=
不考慮您比較的變量的數據類型。因此,這些都會返回true:
'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
0
您可以在這裏找到的信息:http://www.php.net/manual/en/language.operators.comparison.php
,因爲它沒有添加到PHP4它是稀缺的。你有什麼是好的,如果你知道可能存在類型差異,那麼它是一個更好的比較,因爲它是測試值和類型的比較,而不僅僅是價值。
18
!==應該匹配值和數據類型
!=只匹配值忽略的數據類型
$num = '1';
$num2 = 1;
$num == $num2; // returns true
$num === $num2; // returns false because $num is a string and $num2 is an integer
2
$a !== $b
TRUE如果$a
不等於$b
,或者他們是不屬於同一類型
請參閱http://php.net/manual/en/language.operators.comparison.php
相關問題
- 1. PHP不等於和不等於,等於
- 2. 等於不等於php
- 3. PHP不等於或其他不等於
- 4. 等於和不等於
- 5. PHP日期和的strtotime不等於
- 6. PHP等價於send和getattr?
- 7. PHP等於和運營商
- 8. 等於(==)和等於(===)不適合我
- 9. 兩個等號在php中不等於
- 10. 等於不等於
- 11. 雙等於和特里普爾在PHP等於
- 12. PHP如果不等於(!=)和or(||)問題。爲什麼不工作?
- 13. Java等於()相當於PHP
- 14. PHP password_verify()和慢等於比較
- 15. PHP mktime()和microtime()等效於C#
- 16. PHP總和,如果在陣列等於
- 17. char.IsLetterOrDigit等效於php
- 18. Url.Content()等效於php?
- 19. 差異不等於和高於一些
- 20. 嚴格等於運算符和不等於。爲什麼他們不平等
- 21. PHP條件語句:不等於操作
- 22. PHP SHA1不等於java的SHA1
- 23. 問號等於,不會對PHP
- 24. shell whoami不等於php shell_exec whoami?
- 25. PHP的值不等於它的回聲
- 26. PHP短標籤回波法(不等於)
- 27. PHP'不等於'多個類別
- 28. PHP的邏輯 - 如果不等於
- 29. PHP的MySQL - UNIX_TIMESTAMP不等於的strtotime
- 30. 等於和hashCode
的可能的複製(HTTP [如何做PHP等於(==雙等於)和身份證(===三重等於)比較操作有什麼區別?]://計算器。 COM /問題/ 80646 /怎麼辦最PHP平等 - 雙等於-和身份的三重等於-COMP) – nawfal 2015-11-15 11:20:13