【发布时间】:2011-01-13 15:34:51
【问题描述】:
可能的重复:
quick php syntax question
Reference - What does this symbol mean in PHP?
$row_color = ($row_count % 2) ? $color1 : $color2;
【问题讨论】:
-
可能重复一百万个现有问题,例如quick php syntax question
标签: php
可能的重复:
quick php syntax question
Reference - What does this symbol mean in PHP?
$row_color = ($row_count % 2) ? $color1 : $color2;
【问题讨论】:
标签: php
这称为Ternary 运算符。基本上它是检查row_count 是否为奇数然后将row_color 分配给color1 或color2
【讨论】:
$row_count 是2,2 % 2 是0(因为没有余数)。所以$color1 如果是奇数,$color2 如果是偶数...
是扩展的 IF 语法
等于
if ($row_count % 2)
$row_color = $color1;
else
$row_color = $color2;
【讨论】:
【讨论】:
这是一个三元运算符。根据PHP manual:
表达式 (expr1) ? (expr2) : (expr3) 如果 expr1 则计算为 expr2 计算结果为 TRUE,如果 expr1 则为 expr3 计算结果为 FALSE。
换句话说:
$variable = (IF THIS EVALUTES TO TRUE) ? (ASSIGN THIS) : (IF NOT, ASSIGN THIS);
【讨论】:
它是以下代码的简写形式:
if($row_count % 2) {
$row_color = $color1;
}
else {
$row_color = $color2;
}
这是您的原始代码,带有 cmets:
$row_color = ($row_count % 2) ? // Performs logical expression.
$color1 // If logic is true set original variable to this
: $color2; // Else set original variable to this.
PHP关于三元运算的文档:http://php.net/manual/en/language.operators.php
【讨论】:
这是一个条件 IF 语句。如果行数是偶数,则显示一种颜色,如果是奇数,则显示另一种颜色。
他们正在设置交替的行颜色。
问号和冒号使它成为 IF。
条件出现在问号之前(行数为偶数)。
问号后面的第一项是“then”,即条件为真时怎么办。
冒号后面的项目是“else”,即条件不成立怎么办。
很多人喜欢这种语法,因为它简洁。但是,正如您所发现的,当您第一次遇到它时,它确实是一个难题,而且 Google 很难做到。
【讨论】:
它被称为三元运算符。可以在此处找到描述:http://php.net/manual/en/language.operators.php
【讨论】: