2013-11-27 14 views
16

Jaki jest najlepszy, preferowany sposób piśmie, jeśli skrótem jednego-liner, takich jak:PHP, jeśli skrót i echo w jednej linii - możliwe?

expression ? $foo : $bar 

zwrot akcji: muszę echo $foo lub echo $bar. Jakieś szalone sztuczki? :)

+1

* trójskładnikowych oświadczenie * nie * skrótowym jeśli *. Jakie jest aktualne pytanie? – Phil

+1

wyrażenie echa? $ foo: $ bar; –

+1

@Phil: * Wyrażenie warunkowe *, a nie * trójskładnikowe *. :) Gdyby to stwierdzenie, "echo" działałoby w gałęziach. Jedynym powodem, dla którego możesz odejść, nazywając to potrójnym, jest to, że obecnie jest tylko jeden operator trójskładnikowy. "Ternary" oznacza, że ​​ma się do czynienia z trzema, chociaż ... nie jest to bardzo pomocne imię. :) – cHao

Odpowiedz

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

Edycja: here's a good read for you on the topic

Edycja: more to read

+2

Nawiasy są zbędne – Phil

+0

Ty, sir, masz rację. Rzeczywiście są tutaj niepotrzebni. Należy jednak pamiętać, że czasami wyrażenie może być złożone, a więc dodatkowe nawiasy. – Dave

+0

Nigdy nie widziałem, żeby PHP nie oceniało wyrażenia warunkowego, bez względu na to, jak skomplikowane, nie ma pary nawijających nawiasów – Phil

7

wyrażenie echa? $ foo: $ bar;

2

ternary operator którego wartość jest wartością drugiego ekspresji jeśli pierwsza ocenia się TRUE i ocenia trzeciego ekspresji, jeżeli pierwszy ocenia się FALSE. Aby uzyskać echo jedną lub drugą wartość, wystarczy przekazać wyrażenie potrójne do instrukcji echo.

echo expression ? $foo : $bar; 

Czytaj więcej o potrójnym operatora w podręczniku PHP więcej szczegółów: http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary