Undefined index (PHP)

2019-10-10 05:04发布

问题:

Need some explanation. I made form as following:

<form action="test4.php" method="post">
    <select name="code">
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
    </select>
    <input type="submit" value="Cus!">
</form>

Then to store value of the form to $code, I used a line of script that I found in a forum

$code= empty ($_POST['code']) ? null : $_POST['code'];

Actually It worked, But it was not explained. Anybody can explain it to me??

回答1:

It's ternary. The syntax is var = (true) ? trueValue : falseValue; It's the same as this:

if  ( empty($_POST['code']) ) {
    $code =  null;
} else {
    $code = $_POST['code'];
}


回答2:

This is a ternary operator.

Ternary operators take the following form:

condition ? value_if_true : value_if_false

The line in your example is equivalent to the following:

if (empty($_POST["code"])) {
    $code = null;
}
else {
    $code = $_POST["code"];
}


回答3:

empty() returns true if the variable is 0, false, null, empty string, not defined etc.

(condition ? result-if-condition-is-true : result-if-condition-is-false) is called a ternary operator and can be found here in the PHP manual.

It could also be written as this:

if (empty($_POST["code"])) {
    $code = null;
} else {
    $code = $_POST["code"];
}


回答4:

Rad, its a ternary expression. it simply means check the content of $_POST['code'], if true set null else set the value $_POST['code'] to $code .

Rad if you have got your answer, pls tick the check mark against the answer,this would reduce the number of open questions and will be removed from open questions pool.



标签: php indexing