此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;"> &#10003  </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!';}

?>

09-20 10:12