有很多問題可以解釋如何回顯單數或複數變量,但沒有人回答我的問題,即如何設置變量來包含單數或複數值。將單數或複數設置爲變量。 PHP
我會想到它會工作如下:
$bottom="You have favourited <strong>$count</strong> " . $count == 1 ? 'user':'users';
然而,這是行不通的。
有人可以告訴我如何實現上述?
有很多問題可以解釋如何回顯單數或複數變量,但沒有人回答我的問題,即如何設置變量來包含單數或複數值。將單數或複數設置爲變量。 PHP
我會想到它會工作如下:
$bottom="You have favourited <strong>$count</strong> " . $count == 1 ? 'user':'users';
然而,這是行不通的。
有人可以告訴我如何實現上述?
這將解決您的問題,這要歸功於馬里奧和Ternary operator and string concatenation quirk?
$bottom = "You have favourited <strong>$count</strong> " . ($count == 1 ? 'user':'users');
您可以嘗試使用$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
這是做這件事。
$usersText = $count == 1 ? "user" : "users";
$bottom = "You have favourited <strong>" . $count . "</strong> " , $usersText;
哦,我明白你想要完成的。我編輯了我的答案。 – thescientist
對於$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解析器(正確地)假設一切問號左側是條件,除非你通過添加你自己的括號(如其他答案中所述)來改變優先順序。
解釋結果比「它不工作」更詳細一點。 – mario
可能重複[三元運算符和字符串連接的怪癖?](http://stackoverflow.com/questions/1317383/ternary-operator-and-string-concatenation-quirk) – mario
馬里奧,我相信他的問題是$底部總是等於只有'用戶',無論三元操作和串聯 – anditpainsme