0

可能重复:
3 个不同的等于

谁能告诉我为什么,在使用下面的代码时,我被重定向到了大象.com,而不是看到“长颈鹿!

<?php
$foo="giraffe";
if($foo="elephant"){
header("location:http://www.elephant.com");
exit();
}else{
 echo $foo;}
?>

感谢您的关注

Ĵ

4

2 回答 2

7
if($foo="elephant")

你在$foo这里分配,而不是比较它;你应该这样做:

if($foo=="elephant")

赋值操作的结果是刚刚赋值的值;在这种情况下,“大象”的评估结果为真。

于 2012-11-07T18:47:27.310 回答
1

您的if()语句有一个等号。这不会在 PHP 中进行比较;它设置值并返回true。

为了进行比较,您需要使用双等号或三等号:

if($foo == "elephant") { .... }

或者

if($foo === "elephant") { .... }

两者的区别在于 double-equal 不关心变量的数据类型,而 Triple-equal 关心。在这种情况下,它们之间没有太大区别,但值得学习和理解它们的区别,因为如果你不了解它们,它们可能会咬你。更多信息在这里: http: //php.net/manual/en/language.operators.comparison.php

于 2012-11-07T18:50:11.583 回答