Php 如果语句在不应该时命中';T
我正在运行PHP5.3,遇到了一个奇怪的问题。以前有人遇到过这个问题吗Php 如果语句在不应该时命中';T,php,variables,if-statement,variable-assignment,Php,Variables,If Statement,Variable Assignment,我正在运行PHP5.3,遇到了一个奇怪的问题。以前有人遇到过这个问题吗 if(isset($_POST['favorites'])) { $fave = $_POST['favorites']; } elseif(isset($_GET['favorites'])) { $fave = $_GET['favorites']; } else { $fave = 0; } echo $fave; //echoes 0 if($fave=="addto"){ //This is called an
if(isset($_POST['favorites'])) { $fave = $_POST['favorites']; }
elseif(isset($_GET['favorites'])) { $fave = $_GET['favorites']; } else { $fave = 0; }
echo $fave; //echoes 0
if($fave=="addto"){ //This is called and looks like $fave is temporarily set to "addto"
echo $fave; //echoes 0
}
$fave从未设置为“addto”,但if语句出于某种原因将其视为“addto”。有没有人曾经遇到过这种情况,或者知道如何使它按应有的方式工作?试试这个,看看打印出了什么值:
echo 'Post [Favorites]: ' . $_POST['favorites'] . '<br><br>';
if(isset($_POST['favorites'])) {
$fave = $_POST['favorites'];
}elseif(isset($_GET['favorites'])) {
$fave = $_GET['favorites'];
}else{
$fave = 0;
}
echo 'Value of \$fave: ' . $fave . '<br><br>';
if($fave=="addto"){
//This is called and looks like $fave is temporarily set to "addto"
echo 'Inside IF ADDTO. Value of \$fave: ' . $fave . '<br><br>';
}
echo'Post[Favorites]:'$_发布['favorites']
';
如果(isset($_POST['favorites']){
$fave=$_POST['favorites'];
}elseif(isset($_GET['favorites']){
$fave=$_GET['favorites'];
}否则{
$fave=0;
}
echo“价值\$fave:”$“亲爱的。”
';
如果($fave==“addto”){
//这被调用,看起来$fave被临时设置为“addto”
echo'Inside IF ADDTO.\$fave:'的值。$fave.
;
}
使用比较变量类型===
if($fave==="addto")
数据类型比较(松散类型)与==
如果您将一个数字与一个字符串进行比较,或者比较涉及数字字符串,那么每个字符串都将转换为一个数字,并以数字形式执行比较。
-如上文所述,您需要使用==
来确保它也是相同的数据类型。Post[收藏夹]:如果添加到,则\$fave:0的值
在内部。\$fave:0的值