在PHP中,以下代码是有效的
$a=array(0);$a[0];
但是那个是无效的:
array(0)[0]
- 与这种行为相对应的术语是什么?(它与"解引用"有关吗?)
- 这种行为背后的动机是什么(除了用户怨恨:-P)
我正在寻找通用术语,不一定是与PHP相关的术语。
(另一个例子:在MATLAB中,以下是有效的:
s = size(M)
s(0)
但是无效:
size(M)(0)
在PHP和MATLAB中,添加括号没有帮助,即(array(0))[0]
和(size(M))(0)
都无效)
这叫做数组解引用,将在PHP 5.4(目前还在alpha阶段)
注意(谢谢戈登):你所要求的,与array()
1,是不可能的,甚至在PHP 5.4 -但它将工作的函数。
几个来源:
- RFC -函数数组解引用
- PHP主干的特性:数组解引用,当它不确定是否有PHP 5.4或PHP 6 最后但并非最不重要的是,(目前最后)新闻在php.net: PHP 5.4 alpha1发布
引用最后一条新闻:
这里是一个不完整的更改列表:
-添加:性状语言构造
-增加:数组解引用支持
-增加:DTrace支持
-改进:改进了Zend引擎的内存使用和性能
-移动:ext/sqlite移动到pecl (sqlite3支持是还内置)
<一口> 1。 array()
不是一个函数,即使它看起来像一个——它实际上是PHP所说的语言结构;它们的行为不像函数一口>
这被称为"数组解引用",它将在PHP5.4中可用。