0

可能重复:
用于取消引用函数结果的 PHP 语法

我在 php 5.4 中编写了一些代码,而我的服务器只能运行 5.3,因此我需要修复一些语法错误。

当我到达该站点时,我收到此错误

 Parse error: syntax error, unexpected '[' in /home/content/51/6663351/html/application/controllers/admin.php on line 247

第 247 行是

if(count($results->result()) > 0)
            {
 this here>>>   $data['data'] = $results->result()[0];
                $data['cats'] = $this->db->get('category')->result();
                $data['curCat'] = $this->db->get('products_categories',     array('product_id' => $id))->result()[0];   

所以我尝试将代码更改为:

 $data = array();
 if(count($results->result()) > 0)
            {
                $data['data'] = $results->result()[0];
                $data['cats'] = $this->db->get('category')->result();
                $data['curCat'] = $this->db->get('products_categories', array('product_id' => $id))->result()[0];

如何添加 $data = array(); 没有解决任何问题。有谁知道出了什么问题?

4

1 回答 1

5

$results->result()[0]称为数组解引用。它是 PHP 5.4 中的新功能,因此您无法在 5.3 中执行此操作。您需要先返回该数组元素,然后在代码中使用它。

从手册:

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

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

// previously
$tmp = getArray();
$secondElement = $tmp[1];

// or
list(, $secondElement) = getArray();
?>
于 2013-01-31T02:54:20.903 回答