为什么(false和false或true)返回true

Mol*_*Man 2 php operators operator-precedence

var_dump(false and false || true);
// result: bool(false)
Run Code Online (Sandbox Code Playgroud)

(false and false || true) 按预期返回false.

var_dump(false and false or true);
// result: bool(true)
Run Code Online (Sandbox Code Playgroud)

但是(false and false or true)返回true.我没有合理的解释为什么会发生这种情况.

Fab*_*pet 8

&&并且||and和上有更高的优先权or

您可以在PHP文档中看到运算符优先级

所以

<?php 
var_dump(false and false || true);
// eq: false and (true or false) => false

var_dump(false and false or true);
// eq: (false and false) or true => true
Run Code Online (Sandbox Code Playgroud)