静态变量问题

时间:2013-02-22 11:25:44

标签: php class

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

..意外的'$ _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/';
}

3 个答案:

答案 0 :(得分:3)

您无法使用变量声明静态变量,但您可以使用变通方法:

class Constants {
    ...

    public static $template_path;
}

Constants::$template_path = $_SERVER['DOCUMENT_ROOT'] . '/../_html/';

答案 1 :(得分:2)

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

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

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

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

答案 2 :(得分:0)

你可以使用静态功能

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

可以像

一样使用
Constants::getTemplatePath();