PHP类$_SERVER变量属性


PHP Class $_SERVER Variable a Property

我正在开发一个类,我有这样的结构:

class userInfo {
    public $interval        = 60;
    public $av_langs        = null;
    public $ui_ip           = $_SERVER['REMOTE_ADDR'];
    public $ui_user_agent   = $_SERVER['HTTP_USER_AGENT'];
    public $ui_lang         = null;
    public $ui_country      = null;
    // non-relevant code removed
}

但是当执行脚本时,我得到这个错误:

解析错误:语法错误,意外T_VARIABLE inD:'web'www'poll'get_user_info'get_user_info.php on line 12

当我将2 $_SERVER变量更改为简单字符串时,错误消失了。

那么$_SERVER在声明类属性时有什么问题呢?

谢谢

参考以下代码:

public function __construct() {
    $this->ui_ip = $_SERVER['REMOTE_ADDR'];
    $this->ui_user_agent = $_SERVER['HTTP_USER_AGENT'];
}

属性只能用值来声明,不能用表达式。
您可以创建__construct()方法,在该方法中您可以以任何方式初始化属性。

那么$_SERVER在声明类属性时有什么问题呢?

你不能用变量或函数调用预设类属性。

这里有一些关于为什么的深入讨论:为什么PHP属性不允许函数?

然而,底线是,这根本不可能。