临时服务器上PHP中的静态公共类成员


static public class members in PHP on staging server

我们的暂存服务器正在生成一个解析错误,我想知道我们的预暂存服务器是否让我们的开发团队使用了错误的语法。

以下是导致"解析错误"的代码:

       // 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;
      ?>

下面是我们在1and1.com的暂存服务器上运行index.php时的解析错误:

       " Parse error: syntax error, unexpected ']', 
         expecting '(' in index.php on line 12"

为了说明这一点,我们将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设置不正常,或者。。。。。。。?

我的意思是,使用公共静态类成员作为数组索引是很常见的。

您在这两个系统上运行的PHP版本是什么?

听起来它可能与不同版本的PHP有关。