PHP第五天 函数定义调用五 09超全局变量$GLOBALS

    xiaoxiao2022-07-02  122

    就是函全局作用域与全局变量:

    数外部范围的作用域,其中定义的变量就是全局变量。

    全局变量只能在其所在的全局作用域中可以直接使用(访问)。

     

    超全局作用域与超全局变量:

    包括局部作用域和全局作用域的的整个作用域范围。

    超全局变量可以在所有范围中使用(访问)。

    实际上,只有有限的10来个系统预定义变量是超全局变量,包括:$_GET, $_POST, $_REQUEST等。

    所以,系统预定义变量,也被统称为超全局变量。

     

    PHP中的不同作用域的图示:

     

     

    一个特别的超全局变量:$GLOBALS

    它也是一个数组,其中存储了我们自己定义的所有全局变量。

    每个全局变量的变量名,就是$GLOBALS数组的一个单元。

    比如:

    在全局作用域中定义如下变量:

    $v1 = 1; //这一行执行,就有了一个这个:$GLOBALS[‘v1’], 其值为1

    $v2 = ‘abc’; //这一行执行,就有了一个这个:$GLOBALS[‘v2’], 其值为’abc’

    $v3 = true; //这一行执行,就有了一个这个:$GLOBALS[‘v3’], 其值为true

     

     

    作用:

    可以让我们在局部作用域范围中,使用全局变量。

    演示如下:

    $v1 = 10; //全局变量

    function  func1(  ){

    echo  $GLOBALS[‘v1’]; //输出10;

    echo  $v1; //报错:变量v1未定义

    $s1 = $GLOBALS[‘v1’] * 5; //结果为50;

    $s2 = $v1 * 5; //报错:变量v1未定义

    <?php $v1 = 10; function acg1(){ echo $v1;//报错 echo $GLOBALS['v1'];//10 } acg1();

    }

    最新回复(0)