由于bug发现的现象

php 复制代码
//*********************************  示例1 *******************************
$flag = (float)2;
var_dump($flag);
if ($flag = 2) {
}
var_dump($flag);

//输出结果
float(2)
int(2)


//*********************************  示例2 *******************************
$flag = (float)2;
var_dump($flag);
if ($flag = 2 && $id = 1) {
}
var_dump($flag);

//输出结果
float(2)
bool(true)

示例1:赋值操作符 = 与相等比较操作符 == 的区别:

在 if 语句中,您使用了赋值操作符 = 而不是相等比较操作符 ==。赋值操作符会将右侧的值赋给左侧的变量,并且返回赋值的结果。

因此,表达式 flag = 2 实际上将 2 赋值给 flag,并且该表达式的结果是赋值操作的结果,也就是赋的值,即 2。

示例2:逻辑运算符 && 的优先级:

在 PHP 中,逻辑运算符 && 的优先级高于赋值操作符 =。因此,表达式 flag = 2 \&\& id = 1 会首先计算逻辑与操作符 && 的结果,然后将结果赋给 $flag。即:

表达式 flag = 2 \&\& id = 1 中,2 && id = 1 的结果是布尔值 true,因为 2 被视为真值,同时 id 被赋值为 1。

结果为 true 被赋给 flag,因此 flag 的值为布尔值 true。

PS:多个条件与判断谨慎点还是用上()为妙

相关推荐
139的世界真奇妙3 小时前
生产问题排查记录
golang·bug·学习方法
oioihoii3 小时前
我的第一次移动端 AI 办公:在地铁上把 Bug 修了
人工智能·bug
Coder_Shenshen3 小时前
【基于LibUA库的OPC UA服务器与客户端Demo——协议解析与Bug修复实践】
网络·c#·bug
Pan Zonghui2 天前
GitHub Bug反馈与修复全流程指南
github·bug
初圣魔门首席弟子3 天前
bug 2026.05.15(以前能运行的java springboot项目突然间不能运行后台数据了)
java·开发语言·bug
Desenberg3 天前
【Claude Code】因为中途修改配置路径导致Claude Code 插件安装失败
windows·bug
QuestLab4 天前
维护 Hermes Agent CN 过程中的碎碎念,以及从bug上得到的一点点启发
bug
java修仙传4 天前
Java 实习日记:一次 Excel 导入校验 Bug 的定位与数据更新逻辑优化
java·数据库·bug·excel·后端开发
当战神遇到编程4 天前
软件测试基础入门:从 BUG 到测试用例设计完整指南
测试用例·bug
Bear on Toilet7 天前
3. BUG篇
bug