2013-11-27 4 views
16

Какой самый лучший, предпочтительный способ написания, если сокращенная один-лайнер, таких как:PHP, если стенография и эхо в одной строке - возможно?

expression ? $foo : $bar 

поворот сюжета: мне нужно echo $foo или echo $bar. Какие-нибудь сумасшедшие трюки? :)

+1

* троичного заявление *, а не * сокращенного если *. Какой здесь вопрос? – Phil

+1

эхо-выражение? $ foo: $ bar; –

+1

@Phil: * Условное выражение *, а не * тернарный оператор *. :) Было ли это утверждение, 'echo' будет работать в филиалах. И единственная причина, по которой вы можете уйти, назвав ее тройной, - это то, что в настоящее время существует только один тернарный оператор. «Тернар» означает иметь отношение к трем, хотя ... это не очень полезное имя. :) – cHao

ответ

34
<?=(expression) ? $foo : $bar?> 

редактировать: here's a good read for you on the topic

редактировать: more to read

+2

Скобки являются избыточными – Phil

+0

Вы, сэр, справа. Они действительно, вроде лишние, здесь. Но имейте в виду, что иногда выражение может быть сложным, поэтому дополнительные скобки. – Dave

+0

Я никогда не видел, чтобы PHP не оценивал условное выражение, независимо от того, насколько он сложный, без пары круглых скобок – Phil

7

эхо-выражение? $ foo: $ bar;

2

ternary operator определяет значение второго выражения, если первый принимает значение TRUE, и вычисляется в третьем выражении, если первый имеет значение FALSE. До echo одно значение или просто передайте трехмерное выражение в оператор echo.

echo expression ? $foo : $bar; 

Подробнее о тройном операторе в PHP инструкции для более подробной информации: http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary

Смежные вопросы