2017-01-02 145 views
3

這裏是致命的錯誤:PHP致命錯誤:常量表達式包含無效操作

Fatal error: Constant expression contains invalid operations

我得到這個代碼的一個致命的錯誤:

<?php 

class InfoClass { 

    private $user_agent = $_SERVER['HTTP_USER_AGENT']; // error is on this line 

    public static function getOS() { 

     global $user_agent; 

     $os_platform = "Unknown OS Platform"; 

     ... 
} 

我使用PHP 7.這是爲什麼錯誤顯示?感謝

+1

因爲'$ _ SERVER [ 'HTTP_USER_AGENT'];'是 「運行時間」 的信息;並且類屬性聲明可能包含一個初始化,但是這個初始化必須是一個常量值 - 也就是說,它必須能夠在編譯時進行評估,並且不能依賴運行時信息來評估。「 –

+0

@MarkBaker好的我該如何修復它呢? – pixie123

+0

你在類的構造函數中分配它,然後創建一個對象...並且wtf是'global $ user_agent;'應該是?這是否應該作爲方法的參數傳遞? –

回答

4

而是執行此

<?php 

class InfoClass { 
    private $user_agent; 
    public function __construct(){ 
     $this->user_agent = $_SERVER['HTTP_USER_AGENT']; // error is on this line 
    } 

    public static function getOS() { 

    global $user_agent; 

    $os_platform = "Unknown OS Platform"; 

    ... 
} 

希望它有助於

+0

這樣做,而不是希望它幫助? – AbraCadaver

相關問題