不确定我在这里做错了什么,但结果总是空的。仅当未选择答案时,脚本才应输出"您没有选择答案",否则它应输出给定的答案:
我已经更新了上述脚本,但即使给出答案,仍然得到空输出:/
感谢到目前为止的所有帮助,但即使下面的代码也不起作用,如果没有 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 -> 真
因此,您应该使用"==="进行测试,否则代码中总是会出现意外结果。