可能重复:
用于解除引用功能结果的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(); 没有解决任何问题.有谁知道出了什么问题?
这$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)