关于数组问题PHP

来源:百度知道 编辑:UC知道 时间:2024/05/21 15:11:25
function add_hook($definition)
{
if (!is_array($definition))
{
$definition = array('__global', $definition);
}

$this->hooks[$definition[0]][$definition[1]] = array();
}
其中hooks的初始化是var hooks=array();
这里面的$this->hooks[$definition[0]][$definition[1]] = array();是怎么理解呀,为什么用那个array()赋给左边呢?左边的是三维吗?三维不是array[][][]的形式吗?
帮我将整个函数讲解下,谢谢了!

根据条件,程序运行到这步的时候,说明参数$definition是数组,一般数组是以键值的形式存在,即使没有设置键,也会默认成为数字,如:
$a = array("key"=>"value");当没有设置"key"时,
如:$a = array("value");这是的key其实是0,
$this->hooks[$definition[0]][$definition[1]] = array();这句代码是将数组$this->hooks[$definition[0]][$definition[1]]设置为空数组。
如果按维数来说
$this->hooks[$definition[0]]是一维
组$this->hooks[$definition[0]][$definition[1]]是二维
如果这个时候后面的值是原始类型的变量的话,就是二维,但是最后赋值是一个数组,这就形成了三维。
不知我说明白了没有。希望对你有帮助。