导航
×
   ❮   
HTML CSS JavaScript PHP Go ECMS

PHP 变量作用域


PHP 变量作用域

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

变量的作用域是脚本中可以引用/使用该变量的部分。

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

  • local
  • global
  • static

全局和局部作用域

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

实例

具有全局作用域的变量

$x = 5; // global scope

function myTest() {
  // using x inside this function will generate an error
  echo "<p>Variable x inside function is: $x</p>";
}
myTest();

echo "<p>Variable x outside function is: $x</p>";
亲自试一试 »

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

实例

具有局部作用域的变量

function myTest() {
  $x = 5; // local scope
  echo "<p>Variable x inside function is: $x</p>";
}
myTest();

// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
亲自试一试 »

不同的函数可以拥有同名的局部变量,因为局部变量仅在其声明的函数内识别。


PHP 的 global 关键字

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

为此,请在函数内部的变量前使用 global 关键字。

实例

$x = 5;
$y = 10;

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

myTest();
echo $y; // outputs 15
亲自试一试 »

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

上面的实例可以这样重写:

实例

$x = 5;
$y = 10;

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

myTest();
echo $y; // outputs 15
亲自试一试 »

PHP 的 static 关键字

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

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

实例

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

myTest();
myTest();
myTest();
亲自试一试 »

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

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


freew3c.com 中文网是独立运营的中文开发者学习平台,与 freew3c.com 无关联。提供的内容仅用于学习和测试,不保证内容的正确性。


Copyright @2020-2026 京ICP备888888号-8