你好!我试图将网站从 5.6 -> 7.1 转换为 php
作为回应,我收到了许多人的常见错误“非法字符串偏移”。
我的错误代码使用以下结构:
变量初始化(作为字符串)。
$objects = "";
在补充。循环中的变量填充了 mysqli_fetch_assoc (array) 的结果。
$getcats_row=mysqli_fetch_assoc($result);
在循环中,$i 元素的 $objects 变量( $objects 变成一个数组)填充了一个数组。那些。根据我的逻辑,$objects 数组元素包含一个可以通过其标识符访问的数组。
$objects[$i] = (array) $getcats_row;
在这种情况下,我们有 mysql 中请求的字段之一。
if($objects[$checkid]["parent_id"] == $cat)...
同样,这就是我的理解:
- $objects - 一个数组。
- [$checkid] - $object 数组的一个元素,它是一个数组。
- ["parent_id"] - 最终数组的元素。
因此,在 php 5.6 中调用是正确的。输出是数据。
php 7.1 中发生了一些我不明白的事情。我会很感激一个正确的解释。
啊。在输入文本时,大脑显然跟上了。
php 7.1 在将数组插入字符串时很笨(因为 $objects )默认是字符串。
因此,为了正确操作,数组必须按如下方式初始化: $objects = array();