($some_var) ? true_func() : false_func();
这在 php 中是什么,它有什么作用?存在,布尔值还是什么?
与此相同:
if ($some_var) {
true_func();
}
else {
false_func();
}
如果$some_val
为真,则执行:
.
如果$some_val
为 false,则执行:
.
它被称为三元运算符。
通常它在为变量赋值时用作表达式:
$some_var = ($some_bool) ? $true_value : $false_value;
它是最被滥用的编程结构之一(在我看来)。
<?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'];
}
?>
这是三元运算符。
而不是写
if ($a < $b) {
$minVal = $a;
} else {
$minVal = $b;
}
你可以写成
$minVal = ($a < $b) ? $a : $b;
它实际上是一个三元运算符。(我的意思是运算符 ?: 是三元运算符)。
($some_var) ? func1() : func2();
'$some_var' 是一个布尔表达式。如果计算结果为真,则执行“func1()”,否则执行“func2()”。
嗯,它的写法,它和刚才一样
func();
(如果$somevar
是true
,则调用func
;否则,func
也调用!)
它检查布尔值:
转换为布尔值时,以下值被视为 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 类型比较表