2012-10-08 46 views
1

有很多問題可以解釋如何回顯單數或複數變量,但沒有人回答我的問題,即如何設置變量來包含單數或複數值。將單數或複數設置爲變量。 PHP

我會想到它會工作如下:

$bottom="You have favourited <strong>$count</strong> " . $count == 1 ? 'user':'users'; 

然而,這是行不通的。

有人可以告訴我如何實現上述?

+2

解釋結果比「它不工作」更詳細一點。 – mario

+2

可能重複[三元運算符和字符串連接的怪癖?](http://stackoverflow.com/questions/1317383/ternary-operator-and-string-concatenation-quirk) – mario

+0

馬里奧,我相信他的問題是$底部總是等於只有'用戶',無論三元操作和串聯 – anditpainsme

回答

0

您可以嘗試使用$count < 2因爲$count也可以0

$count =1; 
$bottom = sprintf("You have favourited <strong>%d %s</strong>", $count, ($count < 2 ? 'user' : 'users')); 
print($bottom); 

輸出

You have favourited 1 user 
0

這是做這件事。

$usersText = $count == 1 ? "user" : "users"; 
$bottom = "You have favourited <strong>" . $count . "</strong> " , $usersText; 
+0

哦,我明白你想要完成的。我編輯了我的答案。 – thescientist

1

對於$count = 1

"You have favourited <strong>$count</strong> " . $count == 1 ? 'user' : 'users'; 
=>    "You have favourited <strong>1</strong> 1" == 1 ? 'user' : 'users'; 
=>              1 == 1 ? 'user' : 'users'; 
=>               true ? 'user' : 'users'; 
// output: 'user' 

PHP解析器(正確地)假設一切問號左側是條件,除非你通過添加你自己的括號(如其他答案中所述)來改變優先順序。