在PHP中,变量根据其作用域可以分为全局变量和局部变量。理解它们的作用域和使用方式对于编写高效的PHP代码非常重要。
全局变量是在脚本的任何地方都可以访问的变量,通常是在函数外部定义的变量。
global
关键字或$GLOBALS
数组访问)。<?php
$x = 10; // 全局变量
function test() {
// 直接访问全局变量会报错
echo $x; // 这里会报错:Undefined variable $x
}
test();
?>
global
关键字:<?php
$x = 10; // 全局变量
function test() {
global $x; // 声明使用全局变量
echo $x; // 输出 10
}
test();
?>
$GLOBALS
数组:<?php
$x = 10; // 全局变量
function test() {
echo $GLOBALS['x']; // 输出 10
}
test();
?>
局部变量是在函数内部定义的变量,其作用域仅限于该函数内部。
<?php
function test() {
$y = 20; // 局部变量
echo $y; // 输出 20
}
test();
echo $y; // 这里会报错:Undefined variable $y
?>
特性 | 全局变量 | 局部变量 |
---|---|---|
定义位置 | 函数外部 | 函数内部 |
作用域 | 整个脚本 | 仅限于函数内部 |
访问方式 | 函数内部需用global 或$GLOBALS |
直接访问 |
生命周期 | 脚本执行期间一直存在 | 函数执行结束后销毁 |
<?php
$globalVar = 100; // 全局变量
function myFunction() {
$localVar = 50; // 局部变量
global $globalVar; // 访问全局变量
echo "局部变量: $localVar\n"; // 输出 50
echo "全局变量: $globalVar\n"; // 输出 100
}
myFunction();
echo "全局变量: $globalVar\n"; // 输出 100
echo "局部变量: $localVar\n"; // 报错:Undefined variable $localVar
?>
通过以上内容,你可以清晰地理解PHP中全局变量和局部变量的区别及使用方法。