我在下面使用以下代码:
$data = array();
$value = reset($value);
$data[0] = (string) $value->attributes()['data'];
------^
我在localhost中没有问题,但在其他主机中,当我检查代码时,我看到了这个错误:
解析错误:语法错误,意外情况' ['在 ....
我已经显示了代码导致错误的位置。
我也用过:
$data[] = (string) $value->attributes()['data'];
(0
中没有[]
)
我该如何解决?
答案 0 :(得分:8)
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。
答案 1 :(得分:5)
问题在于这一行:
$value->attributes()['data'];
这是因为您使用的是不支持函数数组解除引用的PHP版本,该版本仅在PHP 5.4中添加
要绕过它,你必须先调用该方法,然后访问它的属性,例如:
$someVariable = $value->attributes();
$data[] = (string) $someVariable['data'];