目录

PHP 变量范围


PHP 变量范围

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

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

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

  • 当地的
  • 全球的
  • 静止的

全球和本地范围

声明了一个变量外部函数具有 GLOBAL SCOPE 并且只能在函数外部访问:

示例

具有全局范围的变量:

<?php
$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>";
?>
亲自试一试 »

声明了一个变量之内函数具有 LOCAL SCOPE 并且只能在该函数内访问:

示例

具有局部作用域的变量:

<?php
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变量之前的关键字(在函数内部):

示例

<?php
$x = 5;
$y = 10;

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

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

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

上面的例子可以重写如下:

示例

<?php
$x = 5;
$y = 10;

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

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

PHP static 关键字

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

为此,请使用static第一次声明变量时的关键字:

示例

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

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

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

笔记:该变量仍然是函数的局部变量。


PHP练习

通过练习测试一下

练习:

创建一个名为txt并赋值"Hello"

 = "";