2011-01-13 45 views
1

可能顯示的文件:
quick php syntax question
Reference - What does this symbol mean in PHP?是什麼?簽署此聲明?

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

+2

可能有100萬個現有問題的重複,例如[快速php語法問題] – meagar 2011-01-13 15:39:12

+0

讓我們來看看:[什麼是?]在PHP中5.3?](http://stackoverflow.com/questions/2153180/what-is-in-php-5-3),[什麼是PHP?:操作符被調用,它有什麼作用?](http:// stackoverflow.com/questions/1080247/what-is-the-php-operator-called-and-what-does-it-do),[?:PHP中的運算符](http://stackoverflow.com/questions/1993409/operator-php)和[我可以在哪裏閱讀關於完成的條件?和:](http://stackoverflow.com/questions/4055355/where-can-i-read-about-conditionals-done-with-and)。另請參閱:http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – ircmaxell 2011-01-13 15:40:02

回答

3

它擴展IF語法

它等於

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

這是一個有條件的IF語句。如果rowcount是偶數,則顯示一種顏色,如果是奇數,則顯示其他顏色。

他們設置交替的行顏色。

問號和冒號是什麼使它成爲IF。

條件出現在問號(rowcount是偶數)之前。

問號後面的第一項是「then」,即如果條件爲真,該怎麼辦。

冒號後面的項目是「else」,也就是說,如果條件不成立,該怎麼辦。

許多人喜歡這種語法,因爲它的簡潔。但是,正如你發現的那樣,當你第一次遇到它時,這是一個真正的難題,對谷歌來說很難。

5

這稱爲Ternary運營商。基本上它是檢查是否row_count是奇數然後分配給row_colorcolor1其他color2

1

這是一個三元運算符。按照PHP manual

表達式(expr1)? (expr2): (expr3)如果expr1 的計算結果爲TRUE,則計算爲expr2;如果expr1 的計算結果爲FALSE,則expr3計算爲expr2。

換句話說:

$variable = (IF THIS EVALUTES TO TRUE) ? (ASSIGN THIS) : (IF NOT, ASSIGN THIS); 
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