php t_array错误

use*_*111 0 php

可能重复:
用于解除引用功能结果的PHP语法

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

当我到达网站时,我收到此错误

 Parse error: syntax error, unexpected '[' in /home/content/51/6663351/html/application/controllers/admin.php on line 247
Run Code Online (Sandbox Code Playgroud)

第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];   
Run Code Online (Sandbox Code Playgroud)

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

 $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];
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*nde 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();
?>
Run Code Online (Sandbox Code Playgroud)