2

定義しているこの静的変数がありますが、コードでエラーが発生します。

..予期しない'$_SERVER'(T_VARIABLE)in..。

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 に答える