2013-11-25 50 views
0

这行是什么意思?有谁能够帮助我?我对最后2个标记有混淆:'' 为什么没有这两个标记浏览器会出错?谢谢大家。Php一行需要下行

isset($_POST['but'])? $_POST['but']:''; 
+0

退房三元运算符:http://php.net/manual/en/language.operators.comparison.php – jeroen

+0

它看起来,这意味着如果$ _POST ['but']包含值,因为它在其中设置了''(空字符串)。 –

+0

@Adil:不,它不会更改/添加值,如果它不存在。没有显示对条件运算符的结果做了什么。 –

回答

0

这只是另一种方式来写if/else语句。 例如:

$but = isset($_POST['but'])? $_POST['but']:''; 

将是一样的:

if(isset($_POST['but'])){ 
$but= $_POST['but']; 
}else{ 
$but = ''; 
} 
+0

谢谢meda.I我了解你的帖子。 – cms

0

如果$_POST请求体中包含but参数 - 使用它,overwise使用空字符串。

如果你被人误解statement ? something : anything代码 - 这是Ternary Operator

0

这是什么,但Ternary Operator

说明: 如果您$_POST['but']设置,那么它会分配相同的值给它,否则它将设置一个''

一个明确的例子here

0

那么它被称为ternary运营商。

$value = 5; 
($value > 2) ? true : false; // returns true 

表达式(表达式1)? (expr2):如果expr1的计算结果为TRUE,(expr3)的计算结果为expr2,如果expr1的计算结果为FALSE,则expr3的计算结果为expr3。

这里,如果你的价值$_POST['but']设置,那么它将返回$_POST['but']否则将返回“”。

1

u使用的tenary比较操作

三元运算符有关于三元操作真假

($contidition) ? true : false; 

请参考PHP文档值comparison operator

在以下情况下:

isset($_POST['but']) ? $_POST['but'] : '' 

这是什么意思是,当$_POST['but']存在,使用它,否则使用空字符串

如果u使用的PHP版本> 5.3 u可以使用类似

isset($_POST['but']) ? : ''