我正在开发一个类,我有这样的结构:
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属性不允许函数?
然而,底线是,这根本不可能。