2013-02-11 124 views
-4

需要一些解释。 我做形式如下:未定义的索引(PHP)

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

然后到窗体$代码的储存价值,我用了一个行的脚本的,我在一个论坛

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

其实它的工作中发现,但它没有解释。有人可以给我解释一下吗?

+1

搜索“三元运算符”是一种写入if/else条件检查的简写方式。 – Cups 2013-02-11 14:02:04

+0

请参阅['empty()'](http://us3.php.net/manual/en/function.empty.php)和[三元操作](http://php.net/manual/en/language。 operators.comparison.php#language.operators.comparison.ternary) – 2013-02-11 14:02:28

+1

这与“未定义索引”有什么关系? – kba 2013-02-11 14:04:56

回答

2

这是ternary。语法是var = (true) ? trueValue : falseValue;与此相同:

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

empty()返回true如果变量是0falsenull,空字符串,没有定义等

(condition ? result-if-condition-is-true : result-if-condition-is-false)称为ternary operatorcan be found here in the PHP manual

它也可以写成这样:

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

这是一个三元运算符。

三元运算采取以下形式:

condition ? value_if_true : value_if_false 

在你的实施例中的线是等效于以下语句:

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

RAD,其三元表达。它仅仅意味着检查$ _POST ['code']的内容,如果true设置为null,否则将值$ _POST ['code']设置为$ code。

如果您已得到答案,请勾选对答案的复选标记,这将减少未解决问题的数量,并将从开放问题池中删除。