Php7中的数组到字符串转换

Cra*_*per 6 php symfony

我正在尝试执行此代码(它正在处理php5,现在我在php7上):

$this->links->$data[$te]['attributes']['ID'] = $data[$te]['attributes']['URL'];
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

ContextErrorException:注意:数组到字符串的转换

提前致谢

iai*_*inn 9

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

不同的是表达式:

$this->links->$data[$te]['attributes']['ID']
Run Code Online (Sandbox Code Playgroud)

在PHP 5中评估如下:

$this->links->{$data[$te]['attributes']['ID']}
Run Code Online (Sandbox Code Playgroud)

在PHP 7中像这样:

($this->links->$data)[$te]['attributes']['ID']
Run Code Online (Sandbox Code Playgroud)

有关详细示例,请参阅https://3v4l.org/gB0rQ.

您需要修改您的代码以使其明确,或者通过{}适当地使用,或者将其分解为两行.在这种情况下,如果您的代码在PHP 5中运行良好,请选择前者,因为这意味着该行为在所有PHP版本中保持一致.