简体   繁体   中英

PHP if null echo else echo

Not sure what im doing wrong here, but the out come is always null. The script should output "you did not select an answer" only if no answer was selected but otherwise it should output the answer given:

I have updated the script as mentioned but still getting the empty output even when answer is given :/

Thanks for all the help so far guys, but even the below code doesnt work, it now just outputs as blank if no anwser, but if you do fill it in, it correctly echos the answer.

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";

}

Completely forgot to show this part!!

// 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))

An empty string is not null

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

should be

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

or

if (empty($a1))

an empty is not the same as null try

if ($a === '') this respects also the type which is better for code quality

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";
}

Use empty instead of null checking

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

In PHP, empty string ($a) & empty array ($b) will return true if you test following express:

$a = ''; $b = array();

$a == null -> TRUE $b == null -> TRUE

also,

$a == 0 -> TRUE

So you should use '===' to test, or there's always unexpected result in your code.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM