2

我有我正在定义的这个静态变量,但我的代码中出现错误:

..意外的'$_SERVER'(T_VARIABLE)在...

class Constants {
        const ACCOUNTTYPE_SUPER_ADMIN   = 1;
        const ACCOUNTTYPE_COMPANY_ADMIN = 2;
        const ACCOUNTTYPE_AREA_ADMIN    = 3;
        const ACCOUNTTYPE_END_USER      = 4;

        const SAVETYPE_NEW              = 0;
        const SAVETYPE_EDIT             = 1;

        const LICENSE_VALIDITY_YEARS    = 1;
        const LICENSE_VALIDITY_LEFT_MAX = 12;

        public static $template_path = $_SERVER['DOCUMENT_ROOT'] . '/../_html/';
}
4

3 回答 3

3

您不能以这种方式使用变量声明静态变量,但您可以使用解决方法:

class Constants {
    ...

    public static $template_path;
}

Constants::$template_path = $_SERVER['DOCUMENT_ROOT'] . '/../_html/';
于 2013-02-22T11:30:49.910 回答
2

您只能在定义类成员时分配直接值。

但是您可以创建一个方法 init() 来更改您的模板路径成员值。

  public static function init(){ self::$template_path = $_SERVER['DOCUMENT_ROOT'] . '/../_html/'; }

并在您第一次使用该类或实例化它时运行它。

于 2013-02-22T11:28:09.230 回答
0

你可以使用静态函数

class Constants {
    // ...
    public static function getTemplatePath()
    {
        return $_SERVER['DOCUMENT_ROOT'] . '/../_html/';
    }
}

并且可以像这样使用

Constants::getTemplatePath();
于 2016-09-07T22:08:36.207 回答