重複の可能性:
3 つの異なる等号
以下のコードを使用すると、「キリン!
<?php
$foo="giraffe";
if($foo="elephant"){
header("location:http://www.elephant.com");
exit();
}else{
echo $foo;}
?>
ご覧いただきありがとうございます
J
if($foo="elephant")
$foo
比較するのではなく、ここで割り当てています。あなたがやるべきです:
if($foo=="elephant")
代入演算の結果は、代入されたばかりの値です。この場合、'elephant' は true と評価されます。
あなたのif()
ステートメントには単一の等号があります。これは PHP では比較を行いません。値を設定し、true を返します。
比較を行うには、二重等号または三重等号を使用する必要があります。
if($foo == "elephant") { .... }
また
if($foo === "elephant") { .... }
2 つの違いは、double-equal は変数のデータ型を気にしないのに対し、triple-equal は気にすることです。この場合、それらの間に大きな違いはありませんが、違いを知らないと困る可能性があるため、違いを学んで理解する価値があります。詳細はこちら: http://php.net/manual/en/language.operators.comparison.php