不能使用 [] 进行读取

2022-08-30 11:33:32

在我的一个脚本中,我尝试执行以下操作

$data[] = self::get($row['sr_id']); // <-- line 55

但是,PHP不允许我这样做,给我这个错误

致命错误:无法使用 [] 读取第 55 行的 /file.php

该函数返回一个 bool 或一个对象。self::get

编辑:get 函数创建一个新对象,该对象再次从 mysql 数据库加载数据。


答案 1

在我的情况下,解决方案是这样的:

  • 坏行:

$this->$ExtraTag[] = $fullscript;

  • 好行:

$this->{$ExtraTag}[] = $fullscript;

$this->ExtraTag[] = $fullscript;


答案 2

在表达式中接受的旧PHP版本允许朗读内容,而不管语法如何。PHP 5.1 将其定为非法。但有时错误是在意图上下文之外触发的。
所以我的猜测(再次:显示更多代码)是前面的行包含一个未完成的表达式,连接到该表达式。$var[]$var$data[]

在对象属性的情况下,你可以将$data var 包装到 中,但这在你的情况下似乎不是问题。(否则,第 54 行中有一些您没有显示的内容。右侧无法合理地触发错误。即使数组访问整数或对象也不会触发该致命错误。{ }[]

因此,如果没有任何帮助,只需使用.解决 PHP 问题。array_push()