php全局变量与局部变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php全局变量与局部变量相关的知识,希望对你有一定的参考价值。

实例

<?php
$x=5; // 全局作用域全局变量不能在局部作用域中使用)

function myTest() {
  $y=10; // 局部作用域同样局部变量不能在全局作用域中使用
echo "<p>测试函数内部的变量:</p>"; echo "变量 x 是:$x"; echo "<br>"; echo "变量 y 是:$y"; } myTest(); echo "<p>测试函数之外的变量:</p>"; echo "变量 x 是:$x"; echo "<br>"; echo "变量 y 是:$y"; ?> 

运行实例

在上例中,有两个变量 $x 和 $y,以及一个函数 myTest()。$x 是全局变量,因为它是在函数之外声明的,而 $y 是局部变量,因为它是在函数内声明的。

如果我们在 myTest() 函数内部输出两个变量的值,$y 会输出在本地声明的值,但是无法输出 $x 的值,因为它在函数之外创建。

然后,如果在 myTest() 函数之外输出两个变量的值,那么会输出 $x 的值,但是不会输出 $y 的值,因为它是局部变量,并且在 myTest() 内部创建。

注释:您可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。

PHP global 关键词

global 关键词用于访问函数内的全局变量。

要做到这一点,请在(函数内部)变量前面使用 global 关键词:

实例

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

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

myTest();
echo $y; // 输出 15
?>

运行实例

PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。

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

实例

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

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

myTest();
echo $y; // 输出 15
?>

以上是关于php全局变量与局部变量的主要内容,如果未能解决你的问题,请参考以下文章

php中的全局变量引用

php中在局部作用域内访问全局变量

phpglobal的使用与php的全局变量

局部变量 静态局部变量 全局变量与静态局部变量

8.全局变量与局部变量

php7中之局部变量,全局变量,超全局变量用法和区别