此if else语句不起作用:(在这种情况下,它显示“x is euqal to null”)
<?php
$x = 0;
if ($x == 'null'){
echo 'x is euqal to null';}
else if ($x == 0){
echo 'x is equal to zero!';}
else if ($x == 1){
echo 'x is equal to one!';}
?>
我之所以需要这样做是因为我正在编写一个测试程序,其中一个特点是它在每个问题旁边显示一个勾号、叉号或三个点,这取决于用户是否完成了测试,以及他们的分数是多少。
如果该问题的分数为“空”,则他们尚未完成(显示…)
如果这个问题的分数是1,那么他们已经做了,并且做对了(显示勾号)
如果这个问题的分数为0,那么他们没有,但弄错了(显示十字)
我的实际代码是:
$score = ($_SESSION['score']);
if ($score[$questionList[$loop]['ID']]=='null'){ ?>
<p style="display:inline;"> ... </p> <?php }
else if ($score[$questionList[$loop]['ID']]==1){ ?>
<p style="display:inline;"> ✓ </p> <?php }
else if ($score[$questionList[$loop]['ID']]==0){ ?>
<p style="display:inline;"> X </p> <?php } ?>
尽管这是更大一页的一部分。
我对PHP还不太熟悉,所以这里的内容可能非常丰富,但是任何建议都会非常感谢,谢谢:)
最佳答案
我相信第一个条件返回true,因为字符串等于0。参见comparison operators的文档。
解决方法是用==
替换===
。前任:
<?php
$x = 0;
if ($x === 'null'){
echo 'x is euqal to null';}
else if ($x === 0){ \\true
echo 'x is equal to zero!';}
else if ($x === 1){
echo 'x is equal to one!';}
?>