
-PHPでは、型キャストは正常に機能します。常識を有効にする必要があります。
「なぜそれを比較しているのですか?」
-うわー、PHPの何らかの不具合、見て、2つのフロートを比較しています、それらは同じであるべきで、彼はそれらが等しくないことを教えてくれます。
-ああ、まあ、数字と文字列を比較するとき、何が機能するかを整理する必要があります。
同僚からこのようなことを聞いたことがありますか? 次に、型のキャスト、および==演算子での動作の例を示す金曜日の投稿を示します。
簡単に説明しますが、例だけがあります。 そして、読者の皆様、どうぞ。 いくつかの答えはネタバレの下に隠されています。 ネタバレの下で答えを見る前に、自分で答えてみてください。 正解ごとに、当然のことながら自分にポイントを追加します。 アンケートの投稿の最後に、結果を書き留めることを忘れないでください。 同意しましたか?
それでは行きましょう。
数字から始めましょう
数字を比較するよりも簡単なのは、数字を幼稚園と比較することです。
順序については、明らかなことを確認します。
11 == 11
そのような比較はどうですか?
12 == "0xC"
答えてみてください本当 はい、ここで、文字列の値は、数値システムを考慮して整数に変換されました。
そして、これを試してみると?
12 == 014
クールは覗かない、覚えてる?本当 他にどう? 014は8進数の同じ12です。
今このように:
12 == "014"
結果...偽 望んでいて、ここで真実である人々は、あなたの要件を緩和します。「0xC」は12に変換され、それで十分です。
など:
14 == "014"
ここではすべてが明らかなようです:
014 == "014"
正解は...false。純粋に視覚的ですが、特に他の人のコードを読んでいる場合はすぐに気づきにくいです。
注意:
0 == "0,9"
答えは...本当ですか? そして、はい、それはとても間違っています:0 ==“ 0.9”。 コンマは文字列記号と見なされ、それ以降はすべて破棄されました。
次の値を比較します。
"1e2" == "100"
私たちは...1×10の2乗が100に等しいため、真です。
0b11 == 3
そして、もし0b11が並んでいるなら?
"0b11" == 3
比較...false、これは16進数システムで機能し、バイナリシステムでは申し訳ありません。
今これを試してください:
2.333 == "2.333petrovich"
そして、自分で試してください:
"2.33a" == "2.33b"
そして...false、変換は行われず、文字列が比較されます。
233 == "233w1"
ほぼ同じ:
233 == "233e1"
答えは...false、はい、ここで233 * 10。
"233" == "233w1"
もしそうなら?
233 == "233*2"
ここに...正しい、ペトロヴィッチとの類推によって。
0 == ""
最初に自分ののぞき見しないでください:
"0" == ""
常識を有効にしようとしています...false、調整します。
"1.000000000000000123" == "1.000000000000000456"
行に2つのフロートもあります。
"2.000000000000000123" == "2.000000000000000456"
推測?本当、驚かないでください、見た目は数字が異なりますが、2 == 2、ここではすべてが2に切り上げられます。
ブール比較
数字はシンプルで簡単であり、誰もが正しく答えたので、ここにいくつかの簡単な例を示します。
最初は、そのようなしゃれ...私は中Liについての冗談を思い出しましたが、おそらく控えるでしょう。
"true" == true
ここではすべてがシンプルで明確です。
true == "0"
もしそうなら追加:
true == "01" + 0
その後、私たちは...trueですが、ここに1が追加されています。
true == "0x" + 0
ゼロの前のスペース:
true == " 0"
確認しています...誰かがスペースを落とすことを期待するかもしれませんが、ゼロとの比較があるでしょう。
true == 0x0
true == " "
もしそうなら?
true == [[]]
確認しています...true、ここでは配列には空の配列自体が含まれています。
ヌル
もう少し比較してみましょう。現在はnullです。
null == false
類推によって推測してみてください:
null == "0"
私たちは...false、どうやら、覚えておく必要があるだけです。
null == []
配列
まあ、特に好奇心-配列の比較。
ここで自分で推測してください。覗かないでください:
[] == 0
確認しています...null == 0および[] == nullですが、正確にfalseです。
[0] == 0
ドキュメントには、「$ aと$ bに同じキー/値のペアが含まれている場合、$ a == $ bはTRUEである」と書かれています。
このステートメントがどのように機能するかを確認しましょう。 さらに、ドックはキーの比較方法については何も言っていません。
[1 => 1] == [1 => 1]
なぞなぞ
そしてなぞなぞのデザート(私からではないなぞなぞ、同僚がかつて私にくれたなぞ)。
条件$ x == 1 && $ x == 2が満たされる場合、それが可能な場合、いつ、そうでない場合、そしてなぜですか?
しかし、履歴書はどうですか?
ここで要約すると、2本の脚を備えたスツールは、本来の目的に非常によく使用できます。 さらに、それはその前向きな側面を持っています、例えば、それは前庭の器具とgood部を良い形に保つのを助けます。 それで、ドックを読んで、コーンを埋めると、すべてがうまくいきます。