在 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>";
?>
亲自试一试 »
您可以在不同的函数中使用同名的局部变量,因为局部变量只能被声明它们的函数识别。
这个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
?>
亲自试一试 »
通常,当一个函数完成/执行时,它的所有变量都会被删除。然而,有时我们希望局部变量不被删除。我们需要它来完成进一步的工作。
为此,请使用static
第一次声明变量时的关键字:
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
亲自试一试 »
然后,每次调用该函数时,该变量仍将具有上次调用该函数时所包含的信息。
笔记:该变量仍然是函数的局部变量。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!