私はしばらくPHPでプログラミングしていますが、私はまだ==と===の違いを理解していません。私はそれが割り当てだと分かっています。そして==はと等しいです。それでは、何の目的は?PHPで何ができるか
5
A
答えて
26
ありません。 !==型と値不平等
if("45" !== 45) //true
if(45 !== 45) //false
if(0 !== false)//true
を比較することがstrposのような機能のために特に便利です - 有効に0を返すことができた。
if("45" === 45) //false
if(45 === 45) //true
if(0 === false)//false
それはアナログを持っています。三重イコールとの類似を持っている他の言語をリスト
strpos("hello world", "hello") //0 is the position of "hello"
//now you try and test if "hello" is in the string...
if(strpos("hello world", "hello"))
//evaluates to false, even though hello is in the string
if(strpos("hello world", "hello") !== false)
//correctly evaluates to true: 0 is not value- and type-equal to false
4
データ型が同じであるだけでなく、値
if ("21" == 21) // true
if ("21" === 21) // false
3
===
値とタイプを比較している。場合はチェックします
2
==は型を比較しません。===そうです。
0 == false
はtrueと評価が、
0 === false
は、それは両方の値を比較し、平等を入力しないで
0
これは真の平等比較です。例えば、true
である。
"" === False
は、===は、値と型の両方を比較することは事実であるが、まだ言及し、あなたは==でオブジェクトを比較し、===ときにはされていない一つのケースがあるfalse
12
です。
与えられる以下のコード:オブジェクトの場合
class TestClass {
public $value;
public function __construct($value) {
$this->value = $value;
}
}
$a = new TestClass("a");
$b = new TestClass("a");
var_dump($a == $b); // true
var_dump($a === $b); // false
は===($および$ bの両方同じ種類および値のものであるように)入力した値ではない、基準とを比較します。
6
PHPマニュアルには、さまざまな変数タイプを比較するときにどのような結果==と===が表示されるかを示すa couple of very nice tables(「==とルーズ比較」と「===との厳密な比較」)があります。
0
最小===は自動化のキャスト/コーションがないので、==よりも高速ですが、それほど重要ではないと言及されています。 (もちろん、私はそれを言いました...)
関連する問題
- 1. PHPファイルで何ができますか?
- 2. PHPスクリプトを遅くすることができるものは何ですか?
- 3. 何が::できますか?
- 4. PHP openssl_signで何も署名できませんか?
- 5. EJBで何ができますか?
- 6. RaisePropertyChangedで何ができますか?
- 7. #ifで何ができますか?
- 8. clone()メソッドで何ができますか?
- 9. System.DirectoryServices.Protocols.ExtendedRequestで何ができますか?
- 10. CALayerデリゲートで何ができますか?
- 11. 何=== PHPで
- 12. PHPセッションが破棄されたときに何かする
- 13. なぜPHPのファイルは "<?php"で始まるのですか?何が起こるのですか?
- 14. PHPでは[オブジェクト]とは何ですか?
- 15. PHPで$$とは何ですか?
- 16. データベースディスクキューが高すぎます。何ができるのですか?
- 17. エンドユーザがPHPソースを表示できない場合、PHPエンコーダの目的は何ですか?
- 18. このPHPスクリプトで何が問題なのですか? (キャプチャ)
- 19. このPHPスクリプトで何が問題なのですか
- 20. 変数でできないポインタは何ができますか?
- 21. 標準では#pragmaに何ができるのですか?
- 22. S-functionの生成で何ができるのですか
- 23. PHPで__toString()で何も印刷できないのはなぜですか?
- 24. PHPプログラマが認識すべきJavaの構文の違いは何ですか?
- 25. WindowsAzure:リモートデスクトップ、何ができますか?
- 26. スタンバイモードでは何が起きますか?
- 27. /fakeは何ができますか?
- 28. PHPでsession_destroy()は何をしますか? PHPマニュアルで
- 29. nodejsが処理できる負荷は何ですか
- 30. Windowsユーザーが使用できるアイコンファイル(.ico)とは何ですか?
strposの場合、その "偽"/"真"のコメントはあまり明確ではありませんが、文脈で十分理解できると思います。 – luiscubal
また、Tomが指摘した結果のために、戻り値を評価するときは、ほとんど常に===または!==を使用する方が良いです。関数が現在、あいまいな値を現在返さない場合でも、将来変更される可能性があります。 –
@luiscubal - 私は明確にしました。 –