代码解释 - php $GLOBALS 变量中存储的数组数组

Code explanation - array of arrays stored in php $GLOBALS variable

我正在学习基于 OOP 的 login/logout 系统的原理(通过 YT 上的 phpacademy)。这是让我头疼的代码:

$GLOBALS['config'] = array(
    'init' = array(
        'hostname' = "127.0.0.1",
        'username' = 'root',
        'password' = '',
        'db' = 'dbName'
    ),
    'remember' = array(
        'cookie_name' = 'hash',
        'cookie_expiry' = 604800
    ),
    'session' = array(
        'session_name' = 'user'
    )
);

spl_autoload_register(function($class){
    require_once 'classes/' . $class . '.php';
});

这显然是一个数组数组,其中包含初始化会话和连接到存储在这些 "sub-arrays" 中的数据库所需的各种信息。

我无法理解的是开头 - 他显然将这个数组数组存储在 $GLOBALS 变量中; ['config'] 部分是什么?

  1. 常规变量有 $variableName(所以 => "GLOBALS)
  2. 常规变量有作用域、类型和值(所以 => array();)

中间的“[]”是什么?变量的名称?后面是一个数组的声明(为什么在“=”之后是数组这个词?)

非常感谢!

php.net 很短,但足够详细:http://php.net/manual/en/reserved.variables.globals.php

在这种情况下,config 是一个数组索引。即 $GLOBALS 数组的顶级索引。

您可以使用 print_r($GLOBALS)var_dump($GLOBALS) 来查看数组结构的漂亮表示。

$GLOBALS 是一个数组。它是 PHP 脚本中所有全局变量的数组。 ['config'] 是您在 PHP.

中访问数组中元素的方式

$GLOBALS数组中,他正在将'config'键设置为一个数组。该数组包含 3 个键:'init''remember''session'.

我认为您需要了解索引数组和关联数组之间的区别。在 Php 中,您可以通过两种方式定义 array。第一个是简单数组:

$array = array("1", "2", "3"); 

这将创建一个索引数组(索引为 0 - n 表示数组的长度),您可以像这样访问它:

echo $array[0]; // Would echo "1"

现在很直接了吗?您可以声明的下一种数组是关联数组:

$array = array("one" => "1", "two" => "2", "three" => "3");

这个数组的设置略有不同。不是从 0 开始并为数组中的每个元素加 1,而是为数组定义一个 key => value 对,并使用该 key 值访问任何元素:

echo $array["one"]; // Would echo "1"

本质上,$GLOBALS是一个数组,$GLOBALS["config"]是这个数组中的关联条目,可以随时使用config键访问。希望这是有道理的。查看 php 手册以获取有关数组及其用法的更多信息:

PHP Manual