PHP中&&与and、||与or及=的运算符优先级

各种可能的判断情况基本都已分析,详见代示例:

// 运算符的优先级:"&&"("||") > "=" > "and"("or")
$a1 = true or true and false; // true or和and比=低,第一个true直接赋值
$a2 = false or true or true; // false or和and比=低,第一个false直接赋值
$a3 = (true or true and false); // true 括号内运算完赋值,括号内or和and同级,or结果为true后则括号内运算完毕
$a4 = (false or false or true); // true 括号内运算完赋值,括号内or和and同级,or结果为false则第二个or继续运算
$a5 = (true and true and false); // false 括号内运算完赋值,两个and都要运算完

$a6 = true || true and false; // true and比=低,运算完||直接赋值
$a7 = false || false or true; // false or比=低,运算完||直接赋值

$a8 = (true || true and false); // false 括号内运算完赋值,||与and不同级,不管||结果如何,后边and都需要运算
$a9 = (true || true && false); // true 括号内运算完赋值,||与&&同级,||运算完后是true则括号内运算完毕

$a10 = true || true && false; // true ||与&&同级且比=高,||运算完是true,&&不再运算
$a11 = false || false || true; // true 两个||同级且比=高,第一个||运算完是false,第二个||继续运算

var_dump($a1, $a2, $a3, $a4, $a5, $a6, $a7, $a8, $a9, $a10, $a11);

你可能感兴趣的:(PHP中&&与and、||与or及=的运算符优先级)