Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP执行头:不管语句参数是什么位置_Php - Fatal编程技术网

PHP执行头:不管语句参数是什么位置

PHP执行头:不管语句参数是什么位置,php,Php,可能重复: 有谁能告诉我,为什么在使用下面的代码时,我会被重定向到大象网站,而不是看到“长颈鹿” <?php $foo="giraffe"; if($foo="elephant"){ header("location:http://www.elephant.com"); exit(); }else{ echo $foo;} ?> 谢谢你的关注 J 您在这里分配$foo,而不是比较它;你应该做: if($foo=="elephant") 赋值操作的结果是刚刚赋值的值;在本例

可能重复:

有谁能告诉我,为什么在使用下面的代码时,我会被重定向到大象网站,而不是看到“长颈鹿”

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

谢谢你的关注

J

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

if($foo=="elephant")
赋值操作的结果是刚刚赋值的值;在本例中,“大象”的计算结果为true。

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

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

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


两者之间的区别在于,double equal不关心变量的数据类型,而triple equal关心变量的数据类型。在这种情况下,它们之间没有太大的区别,但值得学习和理解这些区别,因为如果你不了解它们,它们会咬你。此处的更多信息:

当您想要与==进行比较时,您有=作为分配,并且正确使用页眉位置和完整URIDoh的奖励点!我是一个木偶。你不知道我盯着它看了多久了。感谢您指出显而易见的问题!没问题——这是很容易被忽视的事情之一,直到有一双新的眼睛看到它。
if($foo == "elephant") { .... }
if($foo === "elephant") { .... }