2017-01-02 6 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

Do This Вместо

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