我正在开发一个类,我有这个结构:
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 第12行的D:\ web \ www \ poll \ get_user_info \ get_user_info.php
当我将2 $ _SERVER变量更改为简单字符串时,错误消失了。
那么$ _SERVER在声明类属性时会出现什么问题?
由于
答案 0 :(得分:11)
使用此代码作为指南:
public function __construct() {
$this->ui_ip = $_SERVER['REMOTE_ADDR'];
$this->ui_user_agent = $_SERVER['HTTP_USER_AGENT'];
}
答案 1 :(得分:5)
属性只能用值声明,而不能用表达式声明 您可以创建__construct()方法,您可以在其中以任何方式初始化属性。
答案 2 :(得分:3)
那么$ _SERVER在声明类属性时会出现什么问题?
您不能使用变量或函数调用预设类属性。
以下是对原因的深入讨论:Why don't PHP attributes allow functions?
然而,最重要的是,它根本不可能。