2013-02-15 64 views
7

Che differenza c'è tra l'utilizzo dell'operatore condizionale ?: e || Logico OR.Qual è la differenza tra? : e ||

mi sto trovando che il mio codice funziona con:

$screenpixelratio = !empty($_COOKIE['screenpixelratio']) || $_COOKIE['screenpixelratio'] || $fallback_pixelratio; 

Ma non:

$screenpixelratio = !empty($_COOKIE['screenpixelratio']) ? $_COOKIE['screenpixelratio'] : $fallback_pixelratio; 

Qualcuno potrebbe spiegare perché avrebbe funzionato con uno, ma non l'altro.

+1

One (chiamato l'operatore ternario) è l'equivalente di un semplificata "if test"; l'altro è un "o" logico - una differenza piuttosto importante, che fa cose completamente diverse –

+0

Il secondo esempio è un operatore ternario. Il primo assegna il primo valore di verità che incontra a '$ screenpixelration'. – BenM

+0

operatore ternario –

risposta

8

|| operatori binari sono gli operatori che si occupano di due argomenti

come Dice che controllerà prima se è vero che non controllerà ulteriormente il resto controlla ulteriormente

?: L'operatore ternario è un operatore che accetta tre argomenti. Gli argomenti e il risultato possono essere di tipi diversi.

Expression1 ? Expression2 : Expression3; 

enter image description here

18

Il primo (conditional or) sta dicendo ...

this or this or this 

L'altro (ternary operation) viene da dire

if this then this otherwise that 
+0

Chiaro e sintetico –

Problemi correlati