は、$ R、$ G、$ Bの値である:すべての条件のために場合このIF文は、すべての条件が真の場合にfalseと評価されるのはなぜですか?この場合
r: 113
g: 113
b: 105
/
$threshold = 10;
if ((abs($r - $g) <= $threshold) && (abs($r - $b) <= $threshold) && (abs($g - b) <= $threshold))
{
return TRUE;
}
else
{
echo "<hr/>";
var_dump((abs($r - $g) <= $threshold) && (abs($r - $b) <= $threshold) && (abs($g - b) <= $threshold)); //bool(false)
echo abs($r - $g) . "<br />"; //0
echo abs($r - $b) . "<br />"; //8
echo abs($g - $b) . "<br />"; //8
echo $threshold . "<br />"; //10
var_dump((abs($r - $g) <= $threshold)); //bool(true)
var_dump((abs($r - $b) <= $threshold)); //bool(true)
var_dump((abs($g - $b) <= $threshold)); //bool(true)
}
これは出力
bool(false) 0
8
8
10
bool(true) bool(true) bool(true)
ありますIF文はTRUEですが、なぜFALSEと評価されていますか?
実際のコードの 'b'変数に' $ 'が足りないか、この質問の誤植ですか? –
あなたは 'abs($ g - b)<= $ threshold'のbの前に$を忘れました – aynber
@aynber - これを答えとして投稿してください。私はそれが何かばかげたことを知っていましたが、私はそれを見つけることができませんでした、余分な目のペアが必要なだけです – AllisonC