这个 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!';}
?>
我需要这个的原因是我正在编写一个测验程序,其中一个功能是它根据用户是否已经完成以及他们的分数在每个问题旁边显示一个勾号、叉号或三个点.
如果该问题的分数 = 'null' 那么他们还没有完成(显示 ...) 如果该问题的分数 = 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 的新手,所以在这里可能非常厚,但是任何建议将不胜感激,谢谢 :)
最佳答案
我相信第一个条件返回真,因为字符串等于 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!';}
?>
关于php - 为什么这个简单的 PHP if 语句不起作用,我该如何更正它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325646/