2011-01-19 20 views
3

可能性の重複:
How do the equality (== double equals) and identity (=== triple equals) comparison operators differ?PHPの等価比較演算子と同一比較演算子の違いは何ですか?

私は=====の基本的な違いを知っているが、いくつかの経験豊富なプログラマーが私に両方のケースのためのいくつかの実用的な例を伝えることができますか?

+4

http://stackoverflow.com/questions/3641819/php-notを参照してください。 -equal-to-and/3641837#3641837( '!='と '!=='を比較しますが、あなたはアイデアを得ます) – BoltClock

+0

http://www.php.net/manual/ja/types.comparisons.php素晴らしい概観! – Paul

答えて

17

==は、2つのオペランドの値が等しいかどうかをチェックします。 ===は、2つのオペランドの値とタイプをチェックします。

if("1" == 1) 
    echo "true"; 
else 
    echo "false"; 

上記は、trueを出力します。

if("1" === 1) 
    echo "true"; 
else 
    echo "false"; 

上記は、falseを出力します。

if("1" === (string)1) 
    echo "true"; 
else 
    echo "false"; 

上記の出力はtrueです。

1

最も簡単な方法は、文字列を使用することです。二つの例:@つり柱の例に加えて

echo ("007" === "7" ? "EQUAL!" : "not equal"); 
echo ("007" == "7" ? "EQUAL!" : "not equal"); 
1

、より実用的な例は以下の通りである。

$foo = "Goo"; 
$bar = "Good Morning"; 
if (strpos($bar,$foo)) 
    echo "Won't be seen, returns false because the result is in fact 0"; 
if (strpos($bar,$foo) !== false) 
    echo "True, though 0 is returned it IS NOT false)";