- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpで if( $hoge == 0 ) で、$hogeが文字列でもtureになる)
phpでif( $hoge == 0 )で、$hogeが文字列でもtrueになる
このQ&Aのポイント
- phpのif文で、$hogeが0の場合にのみtrueになるようにしたいが、文字列の場合もtrueになってしまう問題が発生した。
- ダブルコーテーションを使用して0を囲んだ場合は、文字列でない限り正しく動作する。
- ダブルコーテーションを使用せずに0を比較すると、文字列の場合もtrueになるため、このような結果が生じる。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>> 前者で、"text"をゼロとして認識してしまった理由がよく分かりません。 PHPの仕様です マニュアルにも「整数値を文字列と比較する際、文字列が 数値に変換されます。」と明記して有ります。 http://www.php.net/manual/ja/language.operators.comparison.php 文字列を含む比較には、型も厳密に比較する「===」を利用しましょう
お礼
回答ありがとうございます。 phpの仕様なんですね。