Php7中的数组到字符串转换

时间:2017-10-09 15:15:45

标签: php symfony

我正在尝试执行此代码(它正在使用php5,现在我在php7上运行):

$this->links->$data[$te]['attributes']['ID'] = $data[$te]['attributes']['URL'];

但是我收到了这个错误:

  

ContextErrorException:注意:数组转换为字符串

提前致谢

1 个答案:

答案 0 :(得分:9)

这取决于PHP 5与7中复杂变量解决方式的变化。请参阅对变量处理的更改部分:http://php.net/manual/en/migration70.incompatible.php

不同之处在于表达式:

$this->links->$data[$te]['attributes']['ID']
在PHP 5中

的评估如下:

$this->links->{$data[$te]['attributes']['ID']}

并在PHP 7中这样:

($this->links->$data)[$te]['attributes']['ID']

请参阅https://3v4l.org/gB0rQ了解缩减示例。

您需要根据需要使用{}修改您的代码,或者将其分解为两行。在这种情况下,如果您的代码在PHP 5中运行良好,请选择前者,因为这意味着所有PHP版本的行为都保持一致。