2013-03-17 2 views
5

È possibile eseguire l'eco utilizzando ||, in modo che utilizzi la prima variabile che restituisce true?Può il || operatore può essere usato per selezionare tra i valori dei tipi non booleani in PHP?

per esempio,

$a = false; 
$b = 'b'; 
echo $a || $b || 'neither'; // evaluates to 1 ? 
+1

Se si dispone di un elenco di cose (più di due), si potrebbe prendere in considerazione: 'echo current (array_filter (array ($ a, $ b, 'né') ')))' – mario

+1

Suona come il tuo la domanda è più simile a "L'operatore || può essere utilizzato con tipi non booleani?" se l'ho capito correttamente Sembra che tu stia dicendo che $ a || $ b || 'nessuno' restituito 1. –

+0

@MartinAtkins sì, sarebbe l'ideale! –

risposta

5

Ternary operator

echo (($a) ? : $b) ? : 'neither'; 
+0

Tecnicamente, questo non è più l'operatore ternario; '$ a? $ b: $ c' è chiamato perché ha 3 operandi (e perché nessun altro operatore standard lo fa). '$ a?: $ b' è un operatore binario che guarda e lavora un po 'come l'operatore ternario. '' – IMSoP

+0

I documenti si riferiscono ancora ad esso come operatore ternario '' –

+0

Impressionante! Grazie! –

1

ultimo ternario

$a = false; 
$b = 'b'; 
echo ($a)?$a:(($b)?$b:'neither'); 
1
echo $a ? $a : ($b ? $b : ($c ? $c : 'neither')); 

e si va avanti così, se hanno più variabili ma otterrà brutto e difficile da leggi quando è troppo lungo.