由于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:多个条件与判断谨慎点还是用上()为妙

相关推荐
鬼手点金2 天前
Harness 工程:模型之外的竞争力
服务器·人工智能·深度学习·机器学习·bug
巴巴媛6663 天前
【Debug1】程序死机,while(1)循环,怎么办?
c语言·笔记·stm32·嵌入式硬件·bug
JosieBook5 天前
【多线程】两台机器同时抢一个字典:一次并发 Bug 的排查
java·网络·bug
鬼手点金5 天前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
小玮看世界6 天前
【Bug 报告】腾讯元宝 Windows 客户端 v2.88.1 新建对话卡死、界面残留与输入框乱码
bug
衣舞晨风7 天前
一次升级引出两个BUG:API7 AI 网关流式 500 与低流量 CPU 打满排查
网关·ai·bug·异常排查
小此方11 天前
「插曲:Git」企业规范篇:DevOps开发模型、Git Flow五类分支设计与测试/预发布/生产环境Bug修复及Hotfix紧急发布流程
git·bug·devops
中文英文-我选中文13 天前
FreeRTOS 玄学Bug:调换任务创建顺序,程序时而正常、时而死机(栈溢出内存踩踏深度复盘)
bug
Keven_1113 天前
BUG:UVA116
算法·bug·图论
鬼手点金13 天前
opencode-隐私优先配置
服务器·前端·javascript·bug·openclaw