PHP if null echo else echo


PHP if null echo else echo

不确定我在这里做错了什么,但结果总是空的。仅当未选择答案时,脚本才应输出"您没有选择答案",否则它应输出给定的答案:

我已经更新了上述脚本,但即使给出答案,仍然得到空输出:/

感谢到目前为止的所有帮助,但即使下面的代码也不起作用,如果没有 anwser,它现在只是输出为空白,但如果你填写它,它会正确回显答案。

if (empty( $a1 )) {
echo"<li>'n<h2>1. " . $q1[0] . "</h2>'n"
    . "<p>You did not select an answer</p>'n"
    . "</li>'n";
}
else {
echo"<li>'n<h2>1. " . $q1[0] . "</h2>'n"
    . "<p><strong>" . $q1[$a1] . ":</strong></p>'n"
    . "<p>" . $r1[$a1] . "</p>'n"
    . "</li>'n";
}

完全忘了展示这部分!!

// get local copies of single answers
$a1 = trim(isset($_POST['a1'])?$_POST['a1']:99);
$a3 = trim(isset($_POST['a3'])?$_POST['a3']:99);
$a4 = trim(isset($_POST['a4'])?$_POST['a4']:99);
$a5 = trim(isset($_POST['a5'])?$_POST['a5']:99);
不要使用

if($a1 == null) 使用 if(empty($a1))if(isset($a1))

空字符串不null

    $a1 = '';
    if ($a1 == null)   // is wrong

应该是

$a1 = '';
if ($a1 === '')

if (empty($a1))
空与

空尝试不同

if ($a === '')这也尊重对代码质量更好的类型

if (empty( $a1 )) {
    echo"<li>'n<h2>1. " . $q1[0] . "</h2>'n"
    . "<p>You did not select an answer</p>'n"
    . "</li>'n";
}
else {
    echo"<li>'n<h2>1. " . $q1[0] . "</h2>'n"
    . "<p><strong>" . $q1[$a1] . ":</strong></p>'n"
    . "<p>" . $r1[$a1] . "</p>'n"
    . "</li>'n";
}

使用empty而不是null检查

'null' 与 false 或 ''' 不同。null' 是一个对象。

在PHP中,如果测试以下表达式,空字符串($a(和空数组($b(将返回true:

$a = '

'; $b = array((;

$a == 空 -> 真

$b == 空 -> 真

$a == 0 -> 真

因此,您应该使用"==="进行测试,否则代码中总是会出现意外结果。