私のコードでは次のようなif文がありました。使用
$a = '0';
$a = 0;
if($a == 'something')
{
//this was being output when I didn't want it to be
}
はそれを固定し、私は本当にここで何が起こっているのか分かりません。
私のコードでは次のようなif文がありました。使用
$a = '0';
$a = 0;
if($a == 'something')
{
//this was being output when I didn't want it to be
}
はそれを固定し、私は本当にここで何が起こっているのか分かりません。
1は文字列、1は整数です。あなたのケースでは
(0 == '0') // true
(0 === '0') // false (types don't match).
、you'rは「何か」という文字列に整数0を比較する:必要に応じてPHPは、あなたが「厳しい」演算子を使用している場合を除き、両者の間に変換します。 PHPは文字列「何か」を整数に変換します。そこに数字がまったくない場合、それは整数0に変換され、これはあなたの比較を真にします。
ちょうど推測ですが、文字列を整数にキャストしようとしていると仮定します。
intval('something')
私は、あなたが文字列に数値($a = 0;
)とを比較し、0
を返すことを期待しています。この場合、文字列は数値にキャストされ、最初に数字がない場合、PHPは文字列を0にキャストします。つまり、真のです。
しかし、別のケースでは2つの文字列が異なるので、falseです。
すばやく、ありがとう! – Josh