我最近从php 5.6迁移到了php 7.1.4,当我尝试在数组中声明一个数组时,我的应用程序显示错误:
447 $rblq['response']['result'] = $numbers;
448 $rblq['response']['document'] = $link;
遇到PHP错误
严重性:警告
消息:非法字符串偏移'结果'
文件名: Materiales.php
行号:447
遇到PHP错误严重性:警告
消息:无法将空字符串分配给字符串偏移量
文件名:Materiales.php
行号:448
这些是每个var_dump
的结果:
var_dump($numbers) array(3) {
["cristales"]=>
int(0)
["porcentaje"]=>
float(0)
["monedas"]=>
int(0)
}
var_dump($link) string(0) ""
我怀疑这与$numbers
和$link
无关,但是我在执行的那一刻声明了不存在的新数组:
$rblq['response']['result']
$rblq['response']['document']
它在php 5.6上正常运行,但7.1.4它似乎无法正常工作。 任何见解都将受到赞赏。
答案 0 :(得分:0)
$rblq['response']
是一个字符串var_dump($rblq);
。很可能在PHP 5.6下error_reporting
和/或display_errors
已关闭,现在它已启用。
找到您将$rblq['response']
设置为字符串的位置并将其删除或unset
或将其重新初始化为数组:
unset($rblq['response']);
//or
$rblq['response'] = array();