2013-02-19 2 views
0

나는 다음과 같은 PHP 문이 : 내가 잘못echo와 함께 삼항 연산자를 사용합니까/내 문제입니까?

echo "<p><strong>Ratio:</strong> " . ($row2["losses"] == 0) ? "&infin;</p>" : number_format(($row1["wins"]/$row2["losses"]), 2) . "</p>"; 

을 뭐하는 거지? 매번 오류가 발생합니다.

+0

무엇이 오류가 발생합니까? –

+0

아마도 삼항 연산자를 사용하는 대신 함수를 작성하려고합니다. 실제로 작동시킬 수 있다고하더라도이 상황에서는보기 흉합니다. – gview

답변

2
echo "<p><strong>Ratio:</strong> " .(($row2["losses"] == 0) ? "&infin;</p>" : number_format(($row1["wins"]/$row2["losses"]), 2)). "</p>"; 

(및) 사이에 삼자를 입력해야합니다.

다른 예 (더 읽기) :

echo "hi i am ".($user == "john"? "John" : "Bla")." Doe"; 
+1

설명이 유용 할 것입니다. –

+0

@austinBrunkhorst 예를 들어 답을 바꿨습니다. –

2
귀하의 문은 . 당신은 파서를 알려줄 필요가 ? http://php.net/manual/en/language.operators.precedence.php

보다 높은 prececence을 가지고 있기 때문에입니다

echo ("<p><strong>Ratio:</strong> " . ($row2["losses"] == 0)) ? 
     "&infin;</p>" : 
     number_format(($row1["wins"]/$row2["losses"]), 2) . "</p>"; 

으로 해석되고있다

삼항이 시작하고 멈추거나, 더 나아가서 그것을 더 많은 진술로 나눈 것입니다. 혼란스럽지 않습니다.

echo "<p><strong>Ratio:</strong> "; 
echo $row2["losses"] == 0 ? "&infin;" : number_format(($row1["wins"] /$row2["losses"]), 2); 
echo "</p>"; 
관련 문제