在我的剧本之一,我尝试做以下无法使用[]读取
$data[] = self::get($row['sr_id']); // <-- line 55
然而,PHP不允许我这样做,给我这个错误
Fatal error: Cannot use [] for reading in /file.php on line 55
self::get
函数返回一个布尔或对象。
编辑: get函数创建一个新的对象,它再次从mysql数据库加载数据。
在我的剧本之一,我尝试做以下无法使用[]读取
$data[] = self::get($row['sr_id']); // <-- line 55
然而,PHP不允许我这样做,给我这个错误
Fatal error: Cannot use [] for reading in /file.php on line 55
self::get
函数返回一个布尔或对象。
编辑: get函数创建一个新的对象,它再次从mysql数据库加载数据。
老版本的PHP在表达式中接受$var[]
,允许不管语法的读出$var
内容。 PHP 5.1使得这是非法的。但有时候,错误是在默认情况之外触发的。
所以我的猜测(再次显示更多代码)是前面的行包含未完成的表达式,$data[]
加入。
在对象属性的情况下,你可以包装你的$ data var到{ }
,但这似乎不是你的情况的问题。 (否则54行中有东西,你没有显示。)右侧不能合理触发错误。即使是数组访问[]
整数或对象也不会触发该致命错误。
所以如果没有什么帮助,只需使用array_push()
。解决PHP。
在我的案件的解决方案,这是:
$this->$ExtraTag[] = $fullscript;
$this->{$ExtraTag}[] = $fullscript;
或
$this->ExtraTag[] = $fullscript;
甜。 $ this - > {$ ExtraTag} [] = $ fullscript为我工作! – FateNuller 2015-06-22 16:01:21
我并不感到惊讶,第一个“坏”行不起作用,最后一行是:“坏”行实际上是无效的语法,最后一行是预期的语法。中间的例子是一个丑陋的解决方法,把第一个例子变成第三个例子。我建议不要这么做:它不那么清晰,简洁,性能较差(因为PHP没有预编译器来优化它到第三个例子)。 – Byson 2017-07-21 13:06:18
我得到的错误是:
Fatal error: Cannot use [] for reading in /pathtosite/drupal/sites/all/themes/zenui/templates/page.tpl.php on line 33
有时问题是,当你有这样一行:
$page['sidebar_first'][]
这可能发生,如果你正在复制一个变量名并忘记注释掉该行。
有两个问题:
1。缺少分号
2. $变量[]必须设置一个变量
修复这两个问题我的代码后读:
$page['sidebar_first'][] = $value;
不要忘了注释掉行,你不用来帮助调试进程
希望这可以帮助像我这样的程序员!
我与我的剧本同样的问题,下面的行抛出了同样的错误:
$array[]=$value
我只需
$array[count($array)-1]=$value
取代它,它完美地工作。
另一个可能的问题可能是意外双重==
。 例如,不小心在做$myArray[] == $myNewValue;
会导致这个错误(因为你正试图用==
读取一个值,而不是告诉PHP分配一个新的数组索引)。
检查$行包含 – Eiko 2010-09-29 09:23:53
'print_r($ row)' – 2010-09-29 09:25:18
你可以显示周边代码/ get方法吗? – halfdan 2010-09-29 09:30:37