2014-06-18 17 views
6

c'è la possibilità di scrivere una stenografia se, ELSE IF, altra istruzione per php.php stenografia if {} ELSE IF {} else {}

se/else è chiaro ma esiste una modalità abbreviata quando voglio usare anche elseif (tranne switch)?

if ($typeArray == 'date'){ 
    echo 'date'; 
} else if($typeArray == 'time'){ 
    echo 'time'; 
} else { 
    echo 'text'; 
} 

non hanno trovato alcuna buona risposta altra, in cui v'è una versione abbreviata per nidificato if tra cui un elseif.

saluti Timmi

+0

utilizzare oop PHP è possibile ottenere questo considerare ogni caso come un nome di metodo. – Sundar

+1

Questo è il più breve che otterrà mantenendo il tuo equilibrio mentale. –

+0

Ci sono OPERATORI TERNARI, offrono qualcosa del genere (e sono troppo pigro per scrivere una risposta completa al momento) :) – Sliq

risposta

21

Siete alla ricerca di ternary statements.

Sintassi:

$condition ? $value_if_true : $value_if_false 

Sintassi per le dichiarazioni ternari nidificate:

$a ? $b : ($c ? $d : ($e ? $f : $g)) 

Solo un avvertimento, le dichiarazioni ternari nidificate sono difficili da leggere, quindi si consiglia di dichiarazioni ternari unnested.

+7

Ugh, non raccomandare mai le dichiarazioni ternarie annidate, che rendono il codice così difficile da leggere –

+0

@BrandonWamboldt Può rendere difficile la lettura, ma è ciò che l'OP sta chiedendo. – jeroen

+0

@jeroen Sì, ma come la risposta qui sotto, è bello dire perché è brutto da usare, quindi le persone nuove alla programmazione non pensano che sia una buona pratica. –

3

È possibile visualizzare questo Ternary operator. Buono se hai una/se/altra, ma una cattiva leggibilità se fai di più.

Alternative syntax. Questa sintassi è utile quando si utilizza html/php nello stesso codice. Ci aiuta a vedere la fine di if/foreach/while ...

switch/case. La cosa migliore è probabilmente pubblicare un po 'di codice per vedere se potrebbe essere abbreviato.