44

私のスクリプトの1つで、次のことを試みます

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

ただし、PHPではこれを行うことができず、このエラーが発生します

致命的なエラー: 行 55 の /file.php の読み取りに [] を使用できません

このself::get関数はブール値またはオブジェクトを返します。

編集: get 関数は、mysql データベースからデータを再度ロードする新しいオブジェクトを作成します。

4

7 に答える 7

34

私の場合の解決策はこれでした:

  • 悪い行:

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

  • 良いライン:

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

また

$this->ExtraTag[] = $fullscript;

于 2011-11-19T12:25:46.027 に答える
23

式で受け入れられた古い PHP バージョンでは、構文に関係なくコンテンツ$var[]を読み取ることができました。$varPHP 5.1 では、これが違法になりました。ただし、意図したコンテキスト外でエラーが発生する場合があります。
したがって、私の推測では(もう一度: もっとコードを表示してください)$data[] 、前の行にはが結合する未完成の式が含まれていると思います。

object 属性の場合、 $data var を にラップできます{ }が、それは問題ではないようです。(それ以外の場合は、54 行目に表示されていないものがあります。) 右側では、エラーを合理的にトリガーすることはできません。[]整数またはオブジェクトにアクセスする配列でさえ、その致命的なエラーをトリガーしません。

したがって、何も役に立たない場合は、 を使用してarray_push()ください。PHP を回避します。

于 2010-09-29T12:36:22.190 に答える
2

私が得たエラーは次のとおりです。

致命的なエラー: 33 行目の /pathtosite/drupal/sites/all/themes/zenui/templates/page.tpl.php の読み取りに [] を使用できません

次のような行を含めると、問題が発生することがあります。

$page['sidebar_first'][]

これは、変数名をコピーしていて、行をコメントアウトするのを忘れた場合に発生する可能性があります。

次の 2 つの問題がありました。

1.セミコロンがありません

2. $variable[] は変数を設定する必要があります

これら2つの問題を修正した後、私のコードは次のようになりました:

$page['sidebar_first'][] = $value;

デバッグプロセスを支援するために、使用していない行をコメントアウトすることを忘れないでください

これが私のような仲間のプログラマーに役立つことを願っています!

于 2014-02-03T16:41:40.700 に答える
0

試す:

$data = Array();
$data[] = self::get($row['sr_id']); // <-- line 55
于 2010-09-29T09:46:22.267 に答える