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

相关推荐

  1. 由于bug发现现象

    2024-04-20 15:06:01       39 阅读
  2. 在数据库造数据发现bug也是bug

    2024-04-20 15:06:01       57 阅读
  3. VR游戏虚拟现实游戏发展现状与未来

    2024-04-20 15:06:01       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-20 15:06:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-20 15:06:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-20 15:06:01       82 阅读
  4. Python语言-面向对象

    2024-04-20 15:06:01       91 阅读

热门阅读

  1. void * 指针的作用_C

    2024-04-20 15:06:01       109 阅读
  2. 若依前端分离版中使用二维码功能

    2024-04-20 15:06:01       104 阅读
  3. SpringBoot上传文件夹

    2024-04-20 15:06:01       33 阅读
  4. [学习] linux命令大全

    2024-04-20 15:06:01       34 阅读
  5. C 练习实例16

    2024-04-20 15:06:01       132 阅读
  6. C 语言实例 - 输出单个字符

    2024-04-20 15:06:01       36 阅读
  7. 阿里云大学考试python中级题目及解析-python高级

    2024-04-20 15:06:01       40 阅读