2012-10-08 4 views
1

단수 또는 복수 변수를 에코하는 방법을 설명하는 데 많은 질문이 있지만 단 한 개 또는 복수 값을 포함하는 변수를 설정하는 방법에 대한 내 질문에 대한 대답은 없습니다. 변수에 대한 단일 또는 복수 설정. PHP

나는 다음과 같이 작동 것이라고 생각했을 것이다 : 이것은 그러나 작동하지 않습니다

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

.

위의 달성 방법에 대해 조언 해 줄 사람이 있습니까? 또한이 그것을 할 한 가지 방법입니다 0

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

출력

You have favourited 1 user 
+2

"작동하지 않습니다"보다 더 자세한 결과를 설명하십시오. – mario

+2

가능한 중복의 [삼항 연산자 및 문자열 연결 버크?] (http://stackoverflow.com/questions/1317383/ternary-operator-and-string-concatenation-quirk) – mario

+0

마리오, 나는 그의 문제가 $ 바닥은 항상 믿습니다 삼자 연산 및 연결 관계없이 '사용자'와 동등합니다. – anditpainsme

답변

0

당신은 사용해 볼 수 있습니다. 이 문제를 해결할 수

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

수 있습니다 $count < 2$count 때문에

+0

오, 성취하려고 시도한 것을 봅니다. 나는 나의 대답을 편집했다. – thescientist

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 파서는 (당연히) 물음표의 왼쪽에 모든 가정 우선 순위를 변경하지 않는 한 조건입니다 (다른 답변에 명시된대로).