0

私はこの等号演算子に少し困惑しています。

エコー (2 == "2.5 時間")

1/true に出力する必要があります。

「2.5time」文字列は整数に型キャストし、整数として 2 を出力する必要があります。

しかし、何も出力されていないようです。

誰でも説明できますか?

4

4 に答える 4

4

何も出力されない場合は、それが false であることを意味します。var_dump(2 == "2.5time") を実行して、何が起こっているかを確認してください。

于 2012-09-21T19:48:04.517 に答える
2

比較では、PHPで文字列を解析し、浮動小数点数である2.5の数値を取得します。次に、float2.0として扱われる整数と比較します。

于 2012-09-21T19:55:00.740 に答える
1

文字列の先頭の数値を整数として扱いたい場合は、整数として型キャストする必要があります。

if(2 == (int)"2.5times") // will be true
于 2012-09-21T19:59:24.967 に答える
0

==演算子を使用すると、すべての文字列が比較されます。

(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を使用して文字列内の部分文字列を見つける方がよいでしょう。

于 2012-09-21T19:54:48.347 に答える