php var结构不清楚

时间:2011-05-30 16:55:09

标签: php

这种结构意味着什么:

$var = isset($var_1) ? $var_1 : $var_2;

我遇到了它,当然还有其他值,而不是$ va,$ var_1和$ var_2。

感谢。

4 个答案:

答案 0 :(得分:3)

这是三元运算符,意思与:

相同
if (isset($var_1)) {
    $var = $var_1;
}
else {
    $var = $var_2;
}

三元运算符提供了一种创建简单if / else语句的简便方法。

答案 1 :(得分:1)

它有一些语法错误,正确:

$var = isset($var_1) ? $var_1 : $var_2;

这意味着:

if (isset($var_1)) 
{
    $var = $var_1;
}
else
{
    $var = $var_2;
}

答案 2 :(得分:1)

这意味着:

if(isset($var_1))
    $var = $var_1;
else
    $var = $var_2;

这是一种简短的语法。

答案 3 :(得分:0)

只是为了您的信息从PHP手册我复制贴好的事情了解三元比较运算符

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

从PHP 5.3开始,可以省略三元运算符的中间部分。表达式expr1?:expr3如果expr1的计算结果为TRUE则返回expr1,否则返回expr3。

注意:请注意,三元运算符是一个语句,它不会计算变量,而是计算结果。知道是否要通过引用返回变量很重要。声明返回$ var == 42? $ a:$ b;因此,在返回引用函数中将不起作用,并且在以后的PHP版本中发出警告。

注意:

建议您避免“堆叠”三元表达式。 PHP在单个语句中使用多个三元运算符时的行为是不明显的:

示例#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.
?>