在PHP里,局部变量通常指在函数内部声明的变量,它的有效范围被限制在所属函数之中。这类变量在函数被调用时创建,函数运行结束后一般就会被销毁,因此不同函数里的同名变量互不影响。

什么是PHP局部变量
当我们在一个函数体内使用 $var = 值; 这样的语句时,$var 就是一个局部变量。在函数外部无法直接读取它,这就是局部变量的基本特征。
基础示例
下面这段代码演示了局部变量的定义与使用:
<?php
function testLocal() {
$name = '小明'; // 局部变量
echo '函数内输出:' . $name;
}
testLocal();
// 以下行会报错:变量 $name 在函数外不存在
// echo $name;
?>
不同函数中的局部变量互不干扰
即便两个函数都用了同样的变量名,它们也是独立的:
<?php
function funcA() {
$num = 10;
echo 'A中num=' . $num;
}
function funcB() {
$num = 20;
echo 'B中num=' . $num;
}
funcA();
funcB();
?>
局部变量与全局变量的区别
如果在函数外定义变量,那是全局变量。想在函数内用全局变量,要加 global 关键字,而局部变量不需要。看下表对比:
| 类型 | 定义位置 | 访问范围 |
|---|---|---|
| 局部变量 | 函数内部 | 仅函数内 |
| 全局变量 | 函数外部 | 整个脚本(函数内需声明global) |
在循环和判断中的局部变量
在 if 或 for 等语句块里定义的变量,在PHP中仍属于函数级局部变量,出了语句块也能用,这和某些语言不同:
<?php
function demo() {
if (true) {
$tmp = '块内赋值';
}
echo $tmp; // 正常输出,因为同在一个函数作用域
}
demo();
?>
通过参数传递使用局部变量
函数参数也是局部变量,调用时由外部值传入:
<?php
function sayHello($who) {
// $who 是局部变量,来自参数
echo '你好,' . $who;
}
sayHello('小红');
?>
理解PHP局部变量的使用方式,能让你避免变量污染和奇怪的报错。写函数时尽量用局部变量封装逻辑,代码会更好维护。