zeromemos
最好的学习方法就是输出所学的知识

PHP变量作用域

PHP中变量的作用域分4种:

  • local:(本地的)—— 局部变量的作用域
  • global:(总体的)—— 全局变量的作用域
  • static:(静态的)—— static 作用域
  • parameter:(参数)——参数作用域


1.local:(本地的)—— 局部变量的作用域
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问。

<?php
function test(){
    $a = 15;
    echo "函数内部:" . $a;
}
echo "函数外部:" . $a;  // 无法访问变量 a
echo "<br/>";  // 换行符
test();
?>

输出结果:

函数外部:
函数内部:15

2.global:(总体的)—— 全局变量的作用域
在所有函数外部定义的变量是全局变量,除了函数外,全局变量可以被脚本中的任何部分访问、要在一个函数中访问一个全局变量,需要使用 global 关键字。

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

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

test();
echo $z;
?>

输出结果:

15

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

<?php
$x = 5;
$y = 10;
$z = 0;
function test()
{
    $GLOBALS['z'] = $GLOBALS['x']+$GLOBALS['y'];
}

test();
echo $z;
?>

输出结果:

15

global $var其实就是$var = &$GLOBALS['var']。调用外部变量的一个别名而已

3、static(静态的)—— static 作用域
当一个函数执行完成时,它的所有变量通常都会被删除。
然而,有时需要局部变量不要被删除,要做到这一点,请在您第一次声明变量时使用 static 关键字。
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。

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

test();
test();
test();
test();
?>

输出结果:

0 1 2 3

每次调用函数时, 该变量将会保留请前函的前被调用的值一次。

4、parameter(参数)——参数作用域
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分:

<?php
function myTest($x)
{
    echo $x;
}
myTest(5);
?>

输出结果:

5
评论区

关于我们

本站主要用于记录个人学习笔记,网站开发中,如需以前站内资料请加QQ群272473835索取。注册账号仅提供回帖功能,可不注册!

微信公众号