簡體   English   中英

登台服務器上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....";

我們的團隊沒有辦法回顧所有源代碼,放棄對數組索引使用常量,而回歸使用字符串文字作為數組索引。

我的問題是-我們的預開發dev服務器是否讓我們擺脫了上面不正確的語法,還是1and1.com是否出於某種目的而設置了某種PHP,還是.......?

我的意思是使用公共靜態類成員作為數組索引是很平常的事。

您在兩個系統上都運行什么版本的PHP?

聽起來可能與不同版本的PHP有關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM