php 7 vs 5.6数组声明

时间:2017-06-27 20:52:08

标签: php arrays

我最近从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它似乎无法正常工作。 任何见解都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

$rblq['response']是一个字符串var_dump($rblq);。很可能在PHP 5.6下error_reporting和/或display_errors已关闭,现在它已启用。

找到您将$rblq['response']设置为字符串的位置并将其删除或unset或将其重新初始化为数组:

unset($rblq['response']);
//or
$rblq['response'] = array();