($some_var) ? true_func() : false_func();
这在php中是什么,这有什么作用?存在,布尔值还是什么?
答案 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();
(如果$somevar
为true
,请调用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(包括任何资源)。