这是什么PHP语法:($ variation_id> 0)? $ variation_id:$ item_id;

时间:2012-04-10 23:10:36

标签: php syntax

是否有人能够解释以下声明的版本,以及它所依赖的php的类型,以便我可以做进一步的研究:

$foo = ($variation_id>0) ? $variation_id : $item_id;

我尝试过搜索,但实际上并不知道我在搜索什么。

我想要找出的是以下语法的名称和含义 ? / :并且($variation_id>0)只是简写if语句?

- 我偶然发现了条件变量,但仍然可以理解一个简单的解释。

4 个答案:

答案 0 :(得分:4)

该结构称为三元结构,并以If ... Else的简短形式

您的代码段:

$foo = ($variation_id>0) ? $variation_id : $item_id;

转换为

if($variation_id>0) {
   $foo = $variation_id;
} else {
   $foo = $item_id;
}

基本上,语法将归结为类似

$variable = (<CONDITION>) ? <TRUE EXPRESSION> : <FALSE EXPRESSION>;

你也可以在一行中组合多个三元结构,但是如果你使用普通的if,如果它过于复杂,那就更好了。

答案 1 :(得分:0)

这是一个三元条件。如果条件在'?'之前的左边是的,它执行'?'之后的语句在结肠前。如果没有,那么它执行后的语句。

在英语中,这表示“如果大于零则使用变体ID,否则使用项目ID”

答案 2 :(得分:0)

$foo = ($variation_id>0) ? $variation_id : $item_id;

装置

if($variation_id>0) 
{
    $foo =$variation_id // if true
}
else
{
    $foo =$item_id; // if false
}

让我们刹车

$foo=($variation_id>0) ? // This is condition 
$variation_id : // This value will be populated by variable '$foo' if condition is true
$item_id;  // This value will be populated by variable '$foo' if condition is false

称为三元语句/操作,是if else

的捷径

答案 3 :(得分:0)

这只是一个捷径,就像这样:

假设你有一个功能。

最后,您想要返回一个值,但如果该值为0,则会出现异常。

所以你会这样做:

return ($value != 0) ? this_will_be_returned_if_true : this_will_be_returned_if_false;

你也可以在变量分配中做到这一点。

模式:

(Bool statement) ? true : false;