php"?"运营商 - ($ some_var)? func():func();

时间:2012-07-11 03:06:38

标签: php variables operators

($some_var) ? true_func() : false_func();

这在php中是什么,这有什么作用?存在,布尔值还是什么?

6 个答案:

答案 0 :(得分:4)

与此相同:

if ($some_var) {
    true_func();
}
else {
    false_func();
}

如果$some_val为真,则执行:之前的函数。

如果$some_val为false,则执行:之后的函数。

它被称为三元运算符。

通常,它在为变量赋值时用作表达式:

$some_var = ($some_bool) ? $true_value : $false_value;

这是最受滥用的编程结构之一(在我的意见中)。

答案 1 :(得分:1)

取自PHP Manual: Comparison Operators

<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// The above is identical to this if/else statement
if (empty($_POST['action'])) {
    $action = 'default';
} else {
    $action = $_POST['action'];
}

?>

答案 2 :(得分:1)

这是ternary运营商。

而不是写

if ($a < $b) {
  $minVal = $a;
} else {
  $minVal = $b;
}

你可以写为

$minVal = ($a < $b) ? $a : $b;

答案 3 :(得分:1)

它实际上是一个三元运算符。 (我的意思是操作符?:是三元运算符)。

($some_var) ? func1() : func2();

'$ some_var'是一个布尔表达式。 如果计算结果为true,则执行'func1()' 否则执行'func2()'。

答案 4 :(得分:0)

嗯,它的编写方式,它与

一样
func();

(如果$somevartrue,请调用func;否则,也请调用func!)

答案 5 :(得分:0)

它检查boolean

  

转换为布尔值时,以下值被视为FALSE:

the boolean FALSE itself
the integer 0 (zero)
the float 0.0 (zero)
the empty string, and the string "0"
an array with zero elements
an object with zero member variables (PHP 4 only)
the special type NULL (including unset variables)
SimpleXML objects created from empty tags
     

其他每个值都被视为TRUE(包括任何资源)。

另请参阅:PHP type comparison tables