2013-02-15 59 views
7

Jaka jest różnica między używaniem operatora warunkowego ?: a || Logical OR.Jaka jest różnica między? : i ||

jestem stwierdzenia, że ​​mój kod działa z:

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

lecz nie:

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

Może ktoś proszę wyjaśnić, dlaczego byłoby pracować z jednym, ale nie innych.

+1

onu (określanego operator trójskładnikowy) jest odpowiednikiem uproszczony "jeśli test"; drugi jest logiczny "lub" - całkiem duża różnica, robiąc zupełnie inne rzeczy. –

+0

Drugi przykład to operator trójskładnikowy. Pierwszy przypisuje pierwszą wartość prawdy, jaką napotkał do "$ screenpixelration". – BenM

+0

operator potrójny –

Odpowiedz

8

|| operatory binarne są podmioty, które zajmują się dwoma argumentami

jako jest napisane, że najpierw sprawdzi, czy to prawda, czy nie będzie sprawdzać dalej. Sprawdź dalej:

?: Operator potrójny to operator, który przyjmuje trzy argumenty. Argumenty i wyniki mogą być różnych typów.

Expression1 ? Expression2 : Expression3; 

enter image description here

Powiązane problemy