可能性の重複:PHP整数比較0にtrueを返しますか?
$o['group'] = "prueba"; if($o['group'] == 0){ die("test"); }
なぜそれが印刷テスト:
Why does PHP consider 0 to be equal to a string?
私は、コードのこの部分を持っていますか?どのように文字列がゼロに等しい可能性がありますか?
可能性の重複:PHP整数比較0にtrueを返しますか?
$o['group'] = "prueba"; if($o['group'] == 0){ die("test"); }
なぜそれが印刷テスト:
Why does PHP consider 0 to be equal to a string?
私は、コードのこの部分を持っていますか?どのように文字列がゼロに等しい可能性がありますか?
比較演算子をタイプチェック "==="で使用します。ここではhttp://php.net/manual/en/language.operators.comparison.phpの例を参照してください。なぜ数値以外の文字列はゼロと常に比較され、true
を返します。
あなたはそれが正確に0
PHP、空の文字列での整数に文字列を比較するとき
==
は常にtrueと評価されますので、if($o['group'] === 0){
のような正確なtypof 3つの等号を使用してみてください文字列に一致する場合'a string' == 0は、整数と比較したときに文字列が整数に変換されるため、trueと評価されます。 PHPが文字列を正しく変換できない場合は、0と評価されます。したがって、0は0に等しく、これは真となります。
まだ間違っています。 '' 0.1e2 '== 0'は真ですが、 '(int)' 0.1e2 '=== 0'は真です。文字列の内容によって、文字列がどのデータ型(* int *または* float *)に変換されるかが決まります。 – Gumbo
はい、これはまだ間違っています。 $ o ['group'] == '0'の場合にのみ動作します –
、文字列 'から "0" 'の両方等価演算子(' == ')とゼロに等しくなります。 –
は空の文字列ではありません。 –
@MichaelMior:そして数字に変換できない他の文字列。 –