2017-01-02 11 views
3

が含まれている致命的なエラーである:これは、なぜ私は、PHP 7を使用していますPHPの致命的なエラー:定数式がここで無効な操作

<?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"; 

     ... 
} 

Fatal error: Constant expression contains invalid operations

私はこのコードで致命的なエラーが出ますエラーが表示されますか?おかげ

+1

を役に立てば幸い、これを行うため、 '$ _SERVER [ 'HTTP_USER_AGENT'];' "実行時" の情報です。クラスプロパティ '宣言には初期化が含まれていても構いませんが、この初期化は定数値でなければなりません。つまり、コンパイル時に評価できる必要があり、評価するためにランタイム情報に依存してはいけません。 ' –

+0

@MarkBaker okどうすれば修正できますか? – 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

関連する問題