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

PHP static variable as a result of another function

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

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

请帮忙。

如果你想在 $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();

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

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;
    }
}

基本上按照您想要的方式调用该函数,但如果尚未对其进行初始化?