PHP静态变量作为另一个函数

时间:2015-05-13 20:34:57

标签: php variables scope

我试图用一些静态变量定义一个PHP类。我正在尝试执行以下操作以避免使用全局变量。

class class_Name{
  private static $var1 = is_plugin_inactive('plugin/plugin.php'); //check if WordPress has this plugin active
  public static function doSomeStuff(){
    echo $var1;
  }
}
//init class
class_Name::doSomeStuff();

这总是让我在定义静态变量时出现错误Parse error: syntax error, unexpected '(', expecting ',' or ';' in my_file.php

请帮助。

2 个答案:

答案 0 :(得分:1)

如果您想在$ var1中保存非常量表达式,则需要从方法中设置,例如init方法:

class class_Name {

    private static $var1 = null;

    public static function init() {
        self::$var1 = is_plugin_inactive('plugin/plugin.php');
    }

    public static function doSomeStuff() {
        echo self::$var1;
    }

}

class_Name::init();

class_Name::doSomeStuff();

答案 1 :(得分:1)

不确定您的具体情况,但是可以这样做:

class class_Name {
    private static $var1 = null;   

    //check if WordPress has this plugin active
    public static function doSomeStuff(){
        if(is_null(self::$var1))
            self::$var1 = is_plugin_inactive('plugin/plugin.php');
        echo self::$var1;
    }
}

基本上就像你想要的那样调用函数,但是如果它还没有那么初始化它?