0

Apache / PHP / MySQLをコンピューターにローカルにインストールして、すばやくテストします。私が現在取り組んでいることの1つは、GDライブラリを介して動的に作成されたゲームの統計の六角形チャートです。

私のラップトップでは、良い結果が得られているので、すべてが正常に機能しました。 image1

ただし、購入したサーバーにデプロイすると、構文エラーが発生します。

Parse error: syntax error, unexpected '['

この声明から来る:

$hexstat = new CL2HexStatPoints( 
    CL2StatsRepository::GetClassesFromJson()[$id], <- *error here*
    new CHexagon( CVector2::Create( constant("RADIUS"), constant("RADIUS") ) 
    ) 
);

そこにあるインデックス演算子は気に入らないようです。関数自体がjsonファイルを解析し、プレーヤークラスに関するプロパティを含むオブジェクトの配列を返します。var_dumpを使用して、実際に配列であることを確認しました。ただし、次のようにプログラムすると、次のようになります。

$array = CL2StatsRepository::GetClassesFromJson();
var_dump( $array[$id] ); // this is ok
var_dump( CL2StatsRepository::GetClassesFromJson()[$id] ); // this isn't

最初のステートメントはOKですが、2番目のステートメントはOKではありません。仕事用のコンピューターにあるPHPのバージョンは5.4.12で、サーバー上のPHPのバージョンは5.3.22です。バージョン間で演算子が関係して何かが変更されたか、変更する必要のある設定があると思います。私は実際に周りを検索している情報を見つけることができませんでした、おそらくこれがなぜであるかについていくつかの光を当てることができる誰かがいますか?どうもありがとう。

編集:古いPHPバージョンと互換性があるようにコードを修正したので、これからはそれを覚えておきます。誰かがそれが実際に機能するのを見ることに興味があるなら:http ://www.qzmpox.nl/l2/hexagon/hexagontest.php

4

1 に答える 1

1

PHP <5.4では、結果の「インデックス」にすぐにアクセスすることはできません。そのため、2番目のコードはサーバーで機能しません。

于 2013-03-22T16:21:43.950 に答える