php 里面与或非属于逻辑运算符,主要用在 if 条件判断,while 循环里面,用来组合多个判断条件,三个符号分别是与是双竖线不对,与是 &&,或是 ||,非是!,要注意 php 还有位运算版本的单 & 单 |,这个和逻辑运算符不是一回事,面试和写业务代码最常用的是 && || !,同时 php 支持短路运算,也就是前面条件已经能确定结果,后面条件不再执行,这个是高频考点,很多新手容易混淆逻辑运算符和位运算符。
基础符号对照表
| 名称 | 逻辑运算符 | 含义 | 记忆要点 | ||
|---|---|---|---|---|---|
| 逻辑与 | && | 两个条件同时成立,整体才为 true | 全部满足才通过 | ||
| 逻辑或 | 只要任意一个条件成立,整体就是 true | 满足一个就通过 | |||
| 逻辑非 | ! | 取反,true 变成 false,false 变成 true | 反转布尔结果 |
补充:php 也支持单词写法 and or not,and 等价 &&,or 等价 ||,not 等价!,但是优先级不一样,日常开发推荐使用 && || !,可读性更好,and or 优先级更低,很容易踩坑。
代码示例
$a = 10;
$b = 20;
// 逻辑与 两个条件都成立才输出
if($a > 5 && $b > 15){
echo "条件成立";
}
// 逻辑或 只要一个成立就输出
if($a > 5 || $b > 30){
echo "条件成立";
}
// 逻辑非 取反
$flag = false;
if(!$flag){
echo "flag为假,取反之后为真";
}
?>
短路运算重点
逻辑与 && 短路:左边条件是 false,右边代码不再执行
逻辑或 || 短路:左边条件是 true,右边代码不再执行
这个特性经常用来简写判断,例如 isset ($id) && $id > 0,前面 isset 失败,后面就不会执行,避免报错。
易混区分 逻辑运算和位运算
位运算符是单个符号 & 和 |,作用是按二进制每一位做运算,返回的是数值,不是布尔值,不要和逻辑与或搞混
逻辑运算符 && || 返回布尔 true 或者 false,用于条件判断
优先级说明
优先级从高到低:! 高于 && 高于 ||,如果条件比较复杂,建议直接加括号,避免优先级出错,例如 if ( (a>1)∣∣(b>2 && $c>3) ),加括号代码更清晰,不容易出 bug。
【常见问题】
问题 1 php 与或非逻辑符号里面 and 和 && 可以随便替换吗
回答 1 php 与或非逻辑符号里面 and 和 && 功能类似,但是优先级不同,and 优先级更低,混合多个条件的时候容易出错,业务代码推荐统一使用 &&。
问题 2 php 与或非逻辑符号短路运算是什么意思
回答 2 php 与或非逻辑符号短路运算,就是 && 左边为假,右边不再执行,|| 左边为真,右边不再执行,可以减少不必要代码执行,还能防止后续代码报错。
问题 3 php 与或非逻辑符号!可以连续写吗
回答 3 php 与或非逻辑符号可以连续写!!,!!$var 作用是把变量强制转换成布尔值,双重取反,开发经常用来转布尔类型。
问题 4 php 与或非逻辑符号和位运算 & | 有什么区别
回答 4 php 与或非逻辑符号 && || 是逻辑判断,输出布尔值,单 & 单 | 是位运算,按二进制位计算,输出数字,用途不一样,不能混用。
【免责申明】
本 php 与或非逻辑符号知识点仅作为编程学习参考,语法以对应 php 官方版本手册为准,学习过程请遵守相关编程规范。


