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


5.4 dereferencing to valid 5.3 array call

我在这行代码中遇到了一个错误,它使用了去引用:

   $data['data'] = $results->result()[0];

(我是从PHP 5.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();

但是创建一个方法调用似乎很麻烦

list()就是您想要的。它已经存在了很长一段时间,假设右边的值可以通过整数键访问,它的工作效果很好。

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

请注意,list()不会像foreach那样迭代键,而是直接按槽位置(0,1,…)访问整数键。如果这些键不存在,您将收到一个NOTICE,并且您的值设置为null。

$res = $results->result();
$data['data'] = $res[0];

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

$data['data'] = $results->result();
$data['data'] = $data['data'][0];