私はこの等号演算子に少し困惑しています。
エコー (2 == "2.5 時間")
1/true に出力する必要があります。
「2.5time」文字列は整数に型キャストし、整数として 2 を出力する必要があります。
しかし、何も出力されていないようです。
誰でも説明できますか?
私はこの等号演算子に少し困惑しています。
エコー (2 == "2.5 時間")
1/true に出力する必要があります。
「2.5time」文字列は整数に型キャストし、整数として 2 を出力する必要があります。
しかし、何も出力されていないようです。
誰でも説明できますか?
何も出力されない場合は、それが false であることを意味します。var_dump(2 == "2.5time") を実行して、何が起こっているかを確認してください。
比較では、PHPで文字列を解析し、浮動小数点数である2.5の数値を取得します。次に、float2.0として扱われる整数と比較します。
文字列の先頭の数値を整数として扱いたい場合は、整数として型キャストする必要があります。
if(2 == (int)"2.5times") // will be true
==演算子を使用すると、すべての文字列が比較されます。
(2 == "2") // is true, because is the same value
(2 === "2") // is false, because is the same value, but is different types
(2 == "23") // is false, contains different values
ただし、あなたの場合は、strposを使用して文字列内の部分文字列を見つける方がよいでしょう。