讲解了 PHP 变量操作的核心概念:赋值传值(值传递)与引用传值(引用传递)。这是理解 PHP 内存机制的关键。
一、 赋值传值(值传递)
- 机制:将变量的值复制一份给新变量。两个变量在内存中独立存在,互不影响。
- 代码示例:
$age = 23;
$myAge = $age; // 把 $age 的值(23)赋给 $myAge
$myAge = 25; // 修改 $myAge,不影响 $age
echo $age, '-----', $myAge;Code language: PHP (php)
- 输出结果:
23-----25 - 解析:因为
$myAge只是拷贝了$age的初始值,后续修改$myAge不会改变$age。
二、 引用传值(引用传递)
- 机制:使用
&符号,将变量的内存地址(指针)赋给新变量。两个变量指向同一块内存,一改全改。 - 代码示例(图2):
$money = 100;
$salary = &$money; // 引用传值:$salary 和 $money 绑定同一地址
$salary = 500; // 修改 $salary,等同于修改 $money
echo $salary, '-----', $money;Code language: PHP (php)
- 输出结果:
500-----500 - 解析:
$salary = &$money让两者成为“别名”,任何一者的值改变,另一者同步变化。
三、 对比
| 特性 | 赋值传值(默认) | 引用传值(加 &) |
|---|---|---|
| 内存关系 | 各自独立 | 共享同一内存地址 |
| 相互影响 | 互不影响 | 一改全改 |
| 符号 | = | =& |
| 适用场景 | 常规数据操作 | 大数组/对象优化、强制同步 |
Previous: php的八种变量类型
Next: 字符串类型