都属于逻辑运算符,没有本质区别。
但需要注意:有时候因为运算符不同,导致结果不一样
$p = 6 or 0;
var_dump($p);//int(6)
$p = 6 || 0;
var_dump($p);//bool(true)
$p = 6 and 0;
var_dump($p); //int(6)
$p = 6 && 0;
var_dump($p); //bool(false)
因为赋值运算符的优先级比 AND 和 OR 的高,所以先赋值;比 && 和 || 的低,所以先逻辑运算,再赋值。