如何解决php var结构不清楚
这个结构是什么意思:$var = isset($var_1) ? $var_1 : $var_2;
我碰到了它,当然还有其他值,不是$ va,$ var_1和$ var_2。
谢谢。
解决方法
这是三元运算符,含义与:
if (isset($var_1)) {
$var = $var_1;
}
else {
$var = $var_2;
}
三元运算符提供了创建简单if / else语句的简便方法。
, 正确地存在一些语法错误:
$var = isset($var_1) ? $var_1 : $var_2;
这表示:
if (isset($var_1))
{
$var = $var_1;
}
else
{
$var = $var_2;
}
, 这意味着:
if(isset($var_1))
$var = $var_1;
else
$var = $var_2;
这是简短的语法。
, 只是为了您从php手册中获得的信息,我复制了粘贴的有关三元比较运算符的知识
表达式(expr1)? (expr2):(expr3)如果expr1计算为TRUE,则计算为expr2,如果expr1计算为FALSE,则为expr3。
从PHP 5.3开始,可以省略三元运算符的中间部分。如果expr1的计算结果为TRUE,则表达式expr1?:expr3返回expr1,否则返回expr3。
注意:请注意,三元运算符是一个语句,并且它的值不是语句的结果,而是变量的结果。知道是否要通过引用返回变量很重要。语句返回$ var == 42? $ a:$ b;因此,按引用返回功能中的无效将起作用,并且在更高版本的PHP中会发出警告。
注意:
建议您避免使用\“ stacking \”三元表达式。在单个语句中使用多个三元运算符时,PHP的行为是不明显的:
Example#3非显而易见的三元行为
<?php
// on first glance,the following appears to output \'true\'
echo (true?\'true\':false?\'t\':\'f\');
// however,the actual output of the above is \'t\'
// this is because ternary expressions are evaluated from left to right
// the following is a more obvious version of the same code as above
echo ((true ? \'true\' : false) ? \'t\' : \'f\');
// here,you can see that the first expression is evaluated to \'true\',which
// in turn evaluates to (bool)true,thus returning the true branch of the
// second ternary expression.
?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。