当前位置: 首页 > news >正文

由于bug发现的现象

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

http://www.lryc.cn/news/340936.html

相关文章:

  • ES源码四:网络通信层流程
  • 贝锐蒲公英自研异地组网新技术:远程视频监控,流畅度、清晰度大幅提升
  • C# aspose word实现模板方式打印及打印速度慢解决方法
  • java纯文字游戏
  • mac IDEA激活 亲测有效
  • 视频怎么去水印,轻松去视频水印的方法
  • vue3+element+AntDesign(自动导入)+pina+vite+js+pnpm搭建项目框架
  • Android Studio XML 预览View 底部移动到右边
  • 计算机网络——实现smtp和pop3邮件客户端
  • 【Spring】面试题汇总
  • thinkphp6入门(23)-- 如何导入excel
  • 【数据结构3-栈和队列】
  • STL--list双向链表
  • ElasticSearch入门篇
  • MAXHUB会议解决方案持续进化,以“高效”为核心推动行业发展
  • CentOS 7安装Redis
  • Kubernetes (K8s) 部署前后端分离项目
  • MLT媒体程序框架01:概述
  • 9【原型模式】复制一个已存在的对象来创建新的对象
  • 谷粒商城实战(013 业务-认证服务-短信验证)
  • Unity中支持泰语--没有版权限制
  • C语言传统垃圾收集器的缺陷以及我的思路
  • 数据交换格式
  • 电力系统卫星授时信号安全隔离装置防护方案
  • 【编程TOOL】VC++6.0下载安装配置使用保姆式教程
  • 组织机构代码是哪几位?营业执照怎么看组织机构代码?
  • nginx禁止ip访问,只允许域名访问
  • 10组Python面试高频问题与详尽解答指南
  • 使用SpringBoot将中国地震台网数据保存PostGIS数据库实践
  • 后端返回树结构