私たちのステージングサーバは解析エラーを生成しています。私たちの前ステージングサーバが私たちの開発チームに間違った構文を奪われてしまったのかと思います。ここでステージングサーバ上のPHPのstatic public classメンバ
'はエラーを解析' の原因となるコードです:
// GLOBALS.PHP
<?php
session_start();
class ItemsFromBronzeAge {
static public $ITEMNAMELABEL = "ItemName";
}
class Labels {
static public $USER_PROMPT_ITEMNAME = "Item name here....";
}
?>
私たちは、第二のファイルに上記globals.phpを含める - のindex.phpと呼ばれる - このような:
// INSIDE OF INDEX.PHP
<?php
require_once 'globals.php'; // variables and statics used throughout
// the next line is line #12 in the 'Parse error' message below
$_SESSION[ItemsFromBronzeAge::$ITEMNAMELABEL] = Labels::$USER_PROMPT_ITEMNAME;
?>
" Parse error: syntax error, unexpected ']',
expecting '(' in index.php on line 12"
をちょうどこの家を駆動するために、我々はCH:そして、ここでパースエラーは、我々の1and1.comステージングサーバー上のindex.phpを実行したときですangedラインこれにはindex.phpのコードで#12と1and1.comステージングサーバーは、もはや「解析エラー」を報告します。
// WE CHANGED FROM THIS:
$_SESSION[ItemsFromBronzeAge::$ITEMNAMELABEL] = Labels::$USER_PROMPT_ITEMNAME;
// TO THIS AND THE 'PARSE ERROR' GOES AWAY -- THIS CODE WORKS ON THE STAGING SERVER:
$_SESSION["ItemName"] = "Item name here....";
私たちのチームは、すべて私たちのソースコードをバック起こっている方法はありません配列インデックス用の定数の使用を廃止し、配列インデックスとしての文字列リテラルの使用を後退させることです。
私の質問は、私たちの前段の開発サーバーは、上記の誤った構文を取り除かせてくれましたか?または1and1.comに何らかのPHP設定がありますか?
私は、静的クラスメンバーを配列インデックスとして使用することを意味します。これは一般的なことです。
構文エラーは表示されず、ローカルテストも正常に動作します。静的なパブリックプロパティの代わりにクラス定数を使うべきでしょう(例えば 'const ITEMNAMELABEL =" ItemName ";')。使用しているPHPのバージョンは? – Phil
私はそれが "静的パブリック"はpublic static $ var = "Something"であるべきだと思います。 –
@Phil、それは私たちが作ろうとしている100%の変更です。ありがとうございます.1and1はまだ私たちに戻っていません。 Sheikh、私は1and1.comのステージングサーバーで短いテストケースを実行し、「静的なパブリック」から「パブリック静的」の提案への順序を逆にすることが効果をもたらすかどうかを確認します。サーバは単純に私たちに静的なpublic $ var = "theText"を教えてくれました - テストした後に投稿します - ありがとう! – wantTheBest