什么签到这个声明?

时间:2011-01-13 15:34:51

标签: php

  

可能重复:
  quick php syntax question
  Reference - What does this symbol mean in PHP?

$ row_color =($ row_count%2)? $ color1:$ color2;

7 个答案:

答案 0 :(得分:5)

这称为Ternary运算符。基本上是检查row_count是否为奇数,然后将row_color分配给color1color2

答案 1 :(得分:3)

它是扩展的IF语法

等于

if ($row_count % 2)
  $row_color = $color1;
else
  $row_color = $color2;

答案 2 :(得分:2)

答案 3 :(得分:1)

这是一个三元运营商。根据{{​​3}}:

  

表达式(expr1)? (expr2):   (expr3)如果expr1则求值为expr2   计算结果为TRUE,expr3表示expr1   评估为FALSE。

换句话说:

$variable = (IF THIS EVALUTES TO TRUE) ? (ASSIGN THIS) : (IF NOT, ASSIGN THIS);

答案 4 :(得分:1)

这称为Ternary operation

它是以下代码的简写表示:

if($row_count % 2) {
   $row_color = $color1;
}
else {
   $row_color = $color2;
}

以下是您的原始代码,其中包含评论:

$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

答案 5 :(得分:0)

这是一个有条件的IF语句。如果rowcount是偶数,则显示一种颜色,如果它是奇数,则显示另一种颜色。

他们正在设置交替的行颜色。

问号和冒号是使它成为IF的原因。

条件出现在问号之前(rowcount是偶数)。

问号后面的第一个项目是“then”,即如果条件为真,该怎么做。

冒号后面的项目是“else”,即如果条件不正确该怎么办。

很多人喜欢这种语法,因为它简洁。但是,正如您所发现的那样,当您第一次遇到它时,这是一个真正的难题,对Google而言将非常困难。

答案 6 :(得分:0)

它被称为三元运算符。可在此处找到说明:http://php.net/manual/en/language.operators.php