статические открытые члены класса в PHP на промежуточном сервере - PullRequest
0 голосов
/ 14 марта 2012

Наш промежуточный сервер генерирует ошибку разбора, и мне интересно, позволил ли наш предварительный сервер разрешить нашей команде разработчиков с неверным синтаксисом.

Вот код, вызывающий «ошибку разбора»:

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

      ?>

А вот ошибка синтаксического анализа, когда мы запускаем index.php на нашем промежуточном сервере 1and1.com:

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

Просто, чтобы поехать домой, мы изменили строку # 12 в коде в index.php на этот, и промежуточный сервер 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, или .......?

Я имею в виду использование открытых статических членов класса в качестве индексов массивов - это обычное дело.

1 Ответ

1 голос
/ 14 марта 2012

Какую версию PHP вы используете в обеих системах?

Похоже, это может быть связано с различными версиями PHP.

...