我正在学习基于OOP的登录/注销系统的原理(由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';
});
这显然是一个数组数组,需要各种信息来初始化会话并连接到存储在这些"子数组"中的数据库。
我无法理解的是开头 - 他显然将数组存储在$GLOBALS变量中;['config']部分是什么?
- 常规变量有$variableName(所以 => "全局)
- 常规变量有作用域、类型和值(所以 => array();)
[]"之间是什么?变量名称?声明后面是一个数组(为什么在"="之后使用单词数组?
非常感谢!
我认为您需要了解索引数组和关联数组之间的区别。在 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手册
$GLOBALS
是一个数组。 它是 PHP 脚本中所有全局变量的数组。 ['config']
是您在 PHP 中访问数组中的元素的方式。
在$GLOBALS
数组中,他正在为数组设置'config'
键。 该数组包含 3 个键:'init'
、'remember'
和 'session'
键。
php.net 很短,但足够详细:http://php.net/manual/en/reserved.variables.globals.php
在本例中,config
是一个数组索引。即$GLOBALS
数组的顶级索引。
您可以使用print_r($GLOBALS)
或var_dump($GLOBALS)
来查看数组结构的良好表示形式。