2013-01-18 8 views
2

가능한 중복 : 내 코드에 어떤 문제가 있는지 잘 모릅니다
PHP ternary operator not working as expectedPHP 삼항 연산자 오류

? 내 PHP 버전은 5.4.7입니다.

$b = 'a'; 
$c = 'd'; 
echo $b == 'a' ? 2: $c == 'a' ? 1 : 0; 

output 1 

정답은

당신의 조언을 주셔서 대단히 감사합니다 .....이 있어야한다.

+7

** 언어 설명서 **는 명확하게 다음과 같이 명시합니다. [삼중 식을 "쌓는"것은 피하는 것이 좋습니다. 단일 문장 내에서 둘 이상의 삼항 연산자를 사용할 때 PHP의 동작은 명확하지 않습니다.] (http://us.php.net/ternary#example-121). – DCoder

+0

대단히 고마워요 – Till

답변

8

괄호를 추가해야합니다.

$b = 'a'; 
$c = 'd'; 
echo ($b == 'a') ? 2 : ($c == 'a' ? 1 : 0); 
+0

대단히 고마워요! 왜 이것이 PHP에서 작동하지 않습니다 물어 봐도 될까요 ?? – Till

+0

내가 잘못한 방법을 의미합니다, 그것은 바로 js에 있어야합니다 – Till

+2

이것에 대한 가장 좋은 대답은 @DCoder에 의해 주어졌습니다. 나는 그의 링크를 읽는 것이 좋습니다. –