是否有人能够解释以下声明的版本,以及它所依赖的php的类型,以便我可以做进一步的研究:
$foo = ($variation_id>0) ? $variation_id : $item_id;
我尝试过搜索,但实际上并不知道我在搜索什么。
我想要找出的是以下语法的名称和含义
?
/ :
并且($variation_id>0)
只是简写if语句?
- 我偶然发现了条件变量,但仍然可以理解一个简单的解释。
答案 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;