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

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

4

6 回答 6

4

与此相同:

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

如果$some_val为真,则执行:.

如果$some_val为 false,则执行:.

它被称为三元运算符。

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

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

它是最被滥用的编程结构之一(在我看来)。

于 2012-07-11T03:11:11.423 回答
1

摘自PHP 手册:比较运算符

<?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'];
}

?>
于 2012-07-11T03:11:22.287 回答
1

这是三元运算符。

而不是写

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

你可以写成

$minVal = ($a < $b) ? $a : $b;
于 2012-07-11T03:15:03.537 回答
1

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

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

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

于 2012-07-11T03:17:31.053 回答
0

嗯,它的写法,它和刚才一样

func();

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

于 2012-07-11T03:13:31.030 回答
0

它检查布尔值

转换为布尔值时,以下值被视为 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 类型比较表

于 2012-07-11T03:18:16.697 回答