【问题标题】:PHP syntax error, unexpected '[' in using an array [duplicate]PHP 语法错误,使用数组时出现意外的“[”[重复]
【发布时间】:2014-07-25 00:30:42
【问题描述】:

我在下面使用这个代码:

$data = array();
$value = reset($value);
$data[0] = (string) $value->attributes()['data'];
------^

我在本地主机上没有问题,但是在其他主机上,当我检查代码时,我看到了这个错误:

解析错误:语法错误,意外的'[' in ....

我已经展示了代码导致错误的位置。

我也用过:

$data[] = (string) $value->attributes()['data'];

(在[] 中没有0

我该如何解决?

【问题讨论】:

  • 问题不在于第一个方括号,而在于attributes() 之后的方括号。
  • 这与第一个 [ 无关,这是您的函数数组解引用(最后一个 [])。你需要 PHP >= 5.4。

标签: php


【解决方案1】:

Array Referencing was first added in PHP 5.4.

来自 PHP.net 的代码:

<?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();
?>

所以你必须改变

$data[] = (string)$value->attributes()['data'];

$attributes = $value->attributes();
$data[] = (string)$attributes['data'];

如果您的 PHP 版本低于 5.4。

【讨论】:

    【解决方案2】:

    问题出在这一行:

    $value->attributes()['data'];
    

    这是因为您使用的 PHP 版本不支持函数数组解引用,该功能仅在 PHP 5.4 中添加

    要绕过它,您必须先调用该方法,然后访问其属性,例如:

    $someVariable = $value->attributes();
    $data[] = (string) $someVariable['data'];
    

    【讨论】:

      猜你喜欢
      • 2014-03-17
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2014-09-09
      • 1970-01-01
      • 2013-12-20
      相关资源
      最近更新 更多