PHP算术运算符需注意优先级、类型转换和整除陷阱:++/--位置影响结果,%对浮点数先截断,**幂运算优先级高于+-,+=会改变变量类型且对数组有合并语义。

PHP 的算术运算符就那么几个,但初学者常因优先级、类型隐式转换和整除陷阱栽跟头。
+、-、*、/、% 是基础五兄弟,别漏掉 **
PHP 7.0+ 支持幂运算符 **,比如 2 ** 3 得 8,比写 pow(2, 3) 直观。注意:** 优先级高于 + 和 -,但低于括号和自增/自减。
-
%只对整数“安全”——若操作数是浮点数(如10.5 % 3.2),PHP 会先截断为整数(变成10 % 3),结果可能出人意料 -
/永远返回 float 类型,哪怕4 / 2也得2.0,不是2 - 负数取模遵循「被除数符号」:例如
-7 % 3是-1,而7 % -3是1(PHP 不关心除数符号)
++ 和 -- 的位置决定一切
前置(++$i)先加后用,后置($i++)先用后加。这个差异在表达式里极易引发 bug。
$i = 5; echo $i++ + ++$i; // 输出 12(5 + 7),不是 11 或 13
- 不要在同一个表达式里对同一变量多次自增/自减,行为在不同 PHP 版本中可能不一致
-
++对字符串也有效:$s = 'a'; echo ++$s;输出'b';但到'z'会变成'aa',不是报错
+=、-= 等复合赋值符不是语法糖那么简单
它们不只是简写,还影响求值顺序和类型推导。比如:
PHP网络编程技术详解由浅入深,全面、系统地介绍了PHP开发技术,并提供了大量实例,供读者实战演练。另外,笔者专门为本书录制了相应的配套教学视频,以帮助读者更好地学习本书内容。这些视频和书中的实例源代码一起收录于配书光盘中。本书共分4篇。第1篇是PHP准备篇,介绍了PHP的优势、开发环境及安装;第2篇是PHP基础篇,介绍了PHP中的常量与变量、运算符与表达式、流程控制以及函数;第3篇是进阶篇,介绍
立即学习“PHP免费学习笔记(深入)”;
$a = '10'; $a += 5; // $a 变成 int 15(自动转类型) $a = '10'; $a = $a + 5; // 同样得 int 15,但中间多一次临时计算
-
+=对数组有特殊行为:$arr1 += $arr2是“键存在则不覆盖”的合并,不是数值相加 - 对 null 值使用
+=会触发 notice:$x = null; $x += 1;报Notice: A non well formed numeric value encountered -
.=是字符串拼接专用,别和+=混用——$s .= 'abc'安全,$s += 'abc'会强制转数字,多半得0
真正容易翻车的,是把 % 当“取余”无脑用于浮点场景,以及在循环条件里写 $i++ 还以为它和 ++$i 等价。这些地方没 debug 日志根本看不出问题。










