可能重复:
3 个不同的等于
谁能告诉我为什么,在使用下面的代码时,我被重定向到了大象.com,而不是看到“长颈鹿!
<?php
$foo="giraffe";
if($foo="elephant"){
header("location:http://www.elephant.com");
exit();
}else{
echo $foo;}
?>
感谢您的关注
Ĵ
if($foo="elephant")
你在$foo
这里分配,而不是比较它;你应该这样做:
if($foo=="elephant")
赋值操作的结果是刚刚赋值的值;在这种情况下,“大象”的评估结果为真。
您的if()
语句有一个等号。这不会在 PHP 中进行比较;它设置值并返回true。
为了进行比较,您需要使用双等号或三等号:
if($foo == "elephant") { .... }
或者
if($foo === "elephant") { .... }
两者的区别在于 double-equal 不关心变量的数据类型,而 Triple-equal 关心。在这种情况下,它们之间没有太大区别,但值得学习和理解它们的区别,因为如果你不了解它们,它们可能会咬你。更多信息在这里: http: //php.net/manual/en/language.operators.comparison.php