PHP中$GLOBALS和global

今天用了接近2个小时的时间,去理解了一个很基础的问题,一个蠢到家的问题。

整理一下,避免类似的问题再次出现。

先说问题:

$GLOBALS : 一个包含了全部变量的全局组合数组

简单的说,$GLOBALS包含PHP中,内置,或者自定义的所有的 全局变量!

比如:
$_GET $_POST 等这些全局变量都可以在$GLOBALS中找到
你自己定义的全局变量变量也能在$GLOBALS中找到

$aa = 123;
$bb = 111;
var_dump($GLOBALS);

自定义的变量,你可以用 $aa 访问和更改,你也可以用$GLOBALS['aa'] 来访问和使用

global关键词的变量就是把局部变量变为全局变量,没错就是这么简单

    $aa = 123;
    $bb = 111;
    function test(){
        global $bb;
        $bb = 456;
    }

    test();

结果:

  'aa' => int 123
  'bb' => int 456

因为global使$bb变为全局变量了,和之前定义的$bb 成为同一个变量,所以在函数内部修改的时候,$bb 成了456。

总结:

程序 = 算法+数据

在程序中,定义的变量是一种最直接的数据。既然是数据就会涉及到存储和处理。在理解一门语言的时候,需要对数据的存储途径和处理途径有一个很深入的理解。

你可能感兴趣的:(php)