Наш промежуточный сервер генерирует ошибку разбора, и мне интересно, позволил ли наш предварительный сервер разрешить нашей команде разработчиков с неверным синтаксисом.
Вот код, вызывающий «ошибку разбора»:
// 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, или .......?
Я имею в виду использование открытых статических членов класса в качестве индексов массивов - это обычное дело.