Php 5.4取消对有效5.3数组调用的引用

Php 5.4取消对有效5.3数组调用的引用,php,arrays,Php,Arrays,我在这行使用取消引用的代码中出错: $data['data'] = $results->result()[0]; (我从PHP5.4开始学习PHP。)如何以5.3的方式取消引用 我已经检查了文件: function getArray() { return array(1, 2, 3); } // on PHP 5.4 $secondElement = getArray()[1]; // before PHP 5.4 $tmp = getArray(); $secondE

我在这行使用取消引用的代码中出错:

   $data['data'] = $results->result()[0];
(我从PHP5.4开始学习PHP。)如何以5.3的方式取消引用

我已经检查了文件:

function getArray() {
    return array(1, 2, 3);
}

// on PHP 5.4
$secondElement = getArray()[1];

// before PHP 5.4
$tmp = getArray();
$secondElement = $tmp[1];

// or
list(, $secondElement) = getArray();
但是创建方法调用似乎很麻烦

$res = $results->result();
$data['data'] = $res[0];
或者可以使用重新分配(以避免需要临时变量):

或者可以使用重新分配(以避免需要临时变量):

list()就是您想要的。它已经存在了很久,如果右边的值可以通过整数键访问,那么它的效果会非常好

<?php
list(, $one, , $three) = range(0, 4);
list()是您想要的。它已经存在了很久,如果右边的值可以通过整数键访问,那么它的效果会非常好

<?php
list(, $one, , $three) = range(0, 4);

谢谢,现在它似乎消除了错误,在我更改了该代码的所有实例后我会再检查谢谢它解决了问题谢谢,现在它似乎消除了错误,在我更改了该代码的所有实例后我会再检查谢谢它解决了问题是的,在5.3中很麻烦。这就是为什么他们在5.4中引入了deref特性,以减少其麻烦。我想你不可能把你的服务器升级到5.4?(请注意,我想你应该为此付出很大的努力——很多人在这里发帖时都被5.2或者更糟糕的版本卡住了)嗯,我使用的是一个共享服务器,它有5.2或者5.3的选项。为了升级到专用服务器,我必须续费并支付接近170美元的费用。当然,我可以在服务器上安装5.4,但删除去引用并没有花太长时间。为什么托管提供商在发布了近一年的版本上拖拖拉拉?你说的是哪种方法调用<代码>列表()
是一种语言构造,而不是函数。而且从来没有一种方法。如果PHP是4.x版,并且是您的第一语言,它会腐蚀您的思维吗?是的,在5.3版中它很麻烦。这就是为什么他们在5.4中引入了deref特性,以减少其麻烦。我想你不可能把你的服务器升级到5.4?(请注意,我想你应该为此付出很大的努力——很多人在这里发帖时都被5.2或者更糟糕的版本卡住了)嗯,我使用的是一个共享服务器,它有5.2或者5.3的选项。为了升级到专用服务器,我必须续费并支付接近170美元的费用。当然,我可以在服务器上安装5.4,但删除去引用并没有花太长时间。为什么托管提供商在发布了近一年的版本上拖拖拉拉?你说的是哪种方法调用<代码>列表()
是一种语言构造,而不是函数。而且从来没有一种方法。如果PHP是4.x版,并且是您的第一语言,那么它会腐蚀您的思维吗?
list
对于更高的索引几乎是无用的<代码>列表(,,,$8)=$arr是不可读的。
列表
对于更高的索引几乎是无用的<代码>列表(,,,$8)=$arr就是不可读。