搜尋

首頁  >  問答  >  主體

php - 深夜遇到文法問題,無言了。

雷雷
为情所困为情所困2830 天前295

全部回覆(2)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:04:31

    這不是php的問題,十有八九是你編輯器的問題。

    <?php
    
    class Privilege{
            const Administration = 0x1 << 1;
    }
    
    $a = new Privilege();
    echo $a::Administration;
    

    在centos和mac尚(都是php7),輸出結果都是2,沒有問題

    php版本的問題。

    changelog在這裡:

    http://php.net/manual/zh/migr...

    5.6引進的新功能:

    使用表達式定義常數

    在先前的 PHP 版本中, 必須使用靜態值來定義常數,宣告屬性以及指定函數參數預設值。 現在你可以使用包含數值、字串字面量以及其他常數在內的數值表達式來 定義常數、宣告屬性以及設定函數參數預設值。

    5.6之前必須用靜態值,5.6之後支援常數用運算定義

    回覆
    0
  • 迷茫

    迷茫2017-05-16 13:04:31

    個人認為出現這個錯誤的原因是線上的PHP版本的低於5.6引起。 PHP5.6以前,常數的右邊值只能是直接量和靜態值,不能是表達式。只有php5.6起,才開始支援表達式作為常數的右邊值。

    回覆
    0
  • 取消回覆