PHP基礎之運算符8——邏輯運算符
“與”和“或”有兩種不同形式運算符的原因是它們運算的優先級不同(見運算符優先級)。
Example #1 邏輯運算符示例
<?php//?--------------------//?foo()?根本沒機會被調用,被運算符“短路”了$a?=?(false?&&?foo());$b?=?(true??||?foo());$c?=?(false?and?foo());$d?=?(true??or??foo());//?--------------------//?'||'?比?'or'?的優先級高//?表達式?(false?||?true)?的結果被賦給?$e//?等同于:($e?=?(false?||?true))$e?=?false?||?true;//?常量?false?被賦給?$f,true?被忽略//?等同于:(($f?=?false)?or?true)$f?=?false?or?true;var_dump($e,?$f);//?--------------------//?'&&'?比?'and'?的優先級高//?表達式?(true?&&?false)?的結果被賦給?$g//?等同于:($g?=?(true?&&?false))$g?=?true?&&?false;//?常量?true?被賦給?$h,false?被忽略//?等同于:(($h?=?true)?and?false)$h?=?true?and?false;var_dump($g,?$h);?>
以上例程的輸出類似于:
bool(true)bool(false)bool(false)bool(true)
相關文章: