PHP数组的问题

时间:2009-03-18 02:56:17

标签: php

为什么不可能在PHP中执行与此相同的操作:

(Array(0))[0];

这只是为了争论,但似乎很奇怪它不允许访问匿名对象。我必须做以下事情:

$array = Array(0);
$array[0];

为什么这是PHP的行为?

4 个答案:

答案 0 :(得分:4)

我曾经读过一些关于这个的详细信息,我后悔没有给它添加书签,因为它非常有见地。但是,它有点像

“因为数组在内存中不存在,直到当前语句(行)完全执行(达到分号)”

所以,基本上,你只是定义了数组 - 它实际上并没有在下一行创建和可读/可访问。

希望这有点准确地总结了我几个月前依稀记得的内容。

答案 1 :(得分:3)

此语言功能尚未完成,但will come in PHP 6

答案 2 :(得分:1)

我想简短的回答是:没有人编码。我在Python和Javascript中都使用过(和喜欢的)语法,但我们仍在等待PHP。

答案 3 :(得分:0)

主要原因是因为与Python和JavaScript等某些语言不同,Array()(或实际上array())不是对象,而是一种创建内置数据类型的语言构造。 内置数据类型本身也不是对象,array()构造不会返回对“对象”的引用,而是可以将实际值本身分配给变量。