-3

重複の可能性:
PHPが0を文字列と等しいと見なすのはなぜですか?
0整数へのphp文字列の比較はtrueを返しますか?

PHPの場合と同様に、関数some_function()がゼロを返すifステートメントがあるようです。

<?php
if( some_function() == "whatever_you_want" ) { ... }

ステートメントは常に実行されます

<?php
echo some_function() == "whatever_you_want";

その場合はTRUEです。

なぜPHPはそのような直感に反する方法で動作するのですか?

4

1 に答える 1

1

これは、数値と文字列値を比較するときのPHPの定義された動作です

数値を文字列と比較する場合、または比較に数値文字列が含まれる場合、各文字列は数値に変換され、比較は数値で実行されます。これらのルールは、switchステートメントにも適用されます。===型変換は、比較が行われる場合、またはこれには型と値の比較が含まれるため、行われません!==

===またはと厳密な値の比較を使用すると!==、期待どおりの結果が得られます。

于 2012-09-29T11:13:39.080 に答える