手册

目录

变量作用域

收藏586

阅读2663

更新时间2025-08-06

PHP 变量作用域

在 PHP 中,变量可以在脚本中的任何地方被声明。

变量的作用域是脚本中变量可被引用/使用的位置。

PHP 有三种不同的变量作用域:

  • local
  • global
  • static

全局和局部作用域

在函数外部声明的变量具有全局作用域,并且只能在函数外部访问:

实例

具有全局作用域的变量:

$x = 5; // 全局作用域

function myTest() {
  // 在此函数中使用 x 将生成错误
  echo "

函数内的变量 x 是:$x

"; } myTest();
运行实例 »

点击 "运行实例" 按钮查看在线实例

echo "

函数外的变量 x 是:$x

";

在函数内部声明的变量具有局部作用域,并且只能在该函数内部访问:

实例

具有局部作用域的变量:

function myTest() {
  $x = 5; // 局部作用域
  echo "

函数内的变量 x 是:$x

"; } myTest(); // 在函数外部使用 x 将生成错误 echo "

函数外的变量 x 是:$x

";
运行实例 »

点击 "运行实例" 按钮查看在线实例

提示:您可以在不同的函数中拥有相同名称的局部变量,因为局部变量仅在其声明的函数中可识别。

PHP global 关键字

global 关键字用于从函数内部访问全局变量。

为此,请在变量(在函数内部)之前使用 global 关键字:

实例

$x = 5;
$y = 10;

function myTest() {
  global $x, $y;
  $y = $x + $y;
}

myTest();
echo $y; // 输出 15
运行实例 »

点击 "运行实例" 按钮查看在线实例

PHP 还将所有全局变量存储在名为 $GLOBALS[index] 的数组中。index 保存变量的名称。该数组也可以在函数内部访问,并且可以用于直接更新全局变量。

上面的例子可以重写为:

实例

$x = 5;
$y = 10;

function myTest() {
  $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}

myTest();
echo $y; // 输出 15
运行实例 »

点击 "运行实例" 按钮查看在线实例

PHP static 关键字

通常,当函数完成/执行时,其所有变量都会被删除。但是,有时我们希望局部变量不被删除。我们需要它来完成进一步的工作。

为此,请在首次声明变量时使用 static 关键字:

实例

function myTest() {
  static $x = 0;
  echo $x;
  $x++;
}

myTest();
myTest();
myTest();
运行实例 »

点击 "运行实例" 按钮查看在线实例

然后,每次调用该函数时,该变量仍将包含上次调用该函数时所包含的信息。

注意:该变量仍然是函数的局部变量。

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号