2009-10-29 133 views
2

我發現了這行代碼,我試圖理解它在做什麼。我不熟悉的部分是問號和冒號。這些字符用於什麼?PHP語法問題

$string = $array[1] . ($array[0] === 47 ? '' : ' word'); 
+0

這是有條件的經營者。它也是一種三元操作符(僅僅因爲它有3個操作數),而且人們經常犯這個錯誤,稱它爲三元操作符,這實際上並沒有太多意義。 – 2009-10-29 06:18:19

+0

此外,這是一個重複,請參閱http://stackoverflow.com/questions/889373/quick-php-syntax-question和http://stackoverflow.com/questions/1276909/php-syntax-question-what-does -THE-問號和冒號均值。 – 2009-10-29 06:20:00

+0

@Andrew - 無論是否愚蠢,PHP手冊都將此構造命名爲三元運算符,因此將它引用爲這樣並不是一個錯誤http://php.net/manual/en/language.operators.comparison.php – 2009-10-29 06:26:30

回答

5

這是一個三元運算符;基本上是一條短暫的條件。

這是一樣的:

$string = $array[1]; 

if ($array[0] !== 47) 
    $string .= ' word'; 

this section in the PHP manual(以下簡稱 「三元運算符」 一節)。

+0

+1與正常代碼相似的解釋。 – mauris 2009-10-29 06:21:31

0

這就是三元運算符。

這裏有一個tutorial

參考它的工作在某種程度上是這樣的:

function tern() 

    if ($array[0] === 47) 
    { 
     return ''; 
    } 
    else 
    { 
     return 'word'; 
    } 
}