2012-05-14 2 views
3

PHP에서 인라인 if 문을 사용하는 방법이 있습니까? 여기에는 elseif도 포함되어 있습니까? 실제로, 는 단지 편의상의, 아니 elseif이,PHP의 인라인 elseif

$unparsedCalculation = ($calculation > 0) ? "<span style=\"color: #9FE076;\">".$calculation : ($calculation < 0) ? "<span style=\"color: #FF736A;\">".$calculation : $calculation; 
+9

정말 읽기가 어렵습니다. 그것은 앞으로 유지 보수의 악몽이 될 것입니다. – rid

+0

게시 한 코드를 사용해 보셨습니까? 작동 했나요? 그렇지 않은 경우 어떤 오류/잘못된 행동을 관찰 했습니까? – Asaph

+0

Touche, Radu - 동의합니다. 이것은 내 코드에서 쉽게 찾을 수있는 첫 번째 elseif 문입니다. – bswinnerton

답변

15

elseifelse if에 지나지 않는다, 그래서 :

나는 논리가 이런 식으로 뭔가를 갈 것이라고 생각합니다. 삼항 연산자는 매우 짧은 논리에 사용되기 때문에 동일한 편리함이 삼항 연산자에 제공되지 않습니다.

if ($a) { ... } elseif ($b) { ... } else { ... } 

따라서, 삼항 해당하면 표준 캘리포니아 코딩 가독성 삼항 연산자

 (IF ? THEN : ELSE) 
     (IF ? THEN : ELSE(IF ? THEN : ELSE(IF ? THEN : ELSE)) 

중첩 사용할 수 있습니다

$a ? (...) : ($b ? (...) : (...)) 
+0

중첩 된 삼항 문장을 괄호로 묶어야하는 것은 맞지만, ... else if와는 아무 관련이 없습니다. PHP의 Ternary는 왼쪽에서 오른쪽으로 연관되어 있습니다 (왼쪽에서 오른쪽으로 평가됨). http://php.net/manual/en/language.operators.php –

1

입니다

if ($a) { ... } else { if ($b) { ... } else { ... } } 

동일 n 찾을 수 here

1

작업 문제의 순서는 괄호로 묶어야합니다.하지만 그렇게 할 수는 있습니다. 더 "ELSEIF"원 사업자가 없지만 당신이 정말로 같은 코드 ... 그것은 가독성 측면에서 혼란 안하지만, 효과적으로 같은 일

if (condition) ? (true) : (false> if (condition) ? (true) : (false));

입니다. 아무도 그걸 보지 않고 "달콤한, 닌자"가 될 것입니다. 그들은 "ugh, wtf"라고 말할 것입니다.