打电话还不够global
在里面__construct()
. global
仅使变量在current scope, 这正是__construct()
方法
要使其在其他方法中可用,您需要在每个方法中单独调用它:
class MyClass {
public function __construct() {
add_action( \'init\', array( $this, \'method\') );
}
public function method() {
global $global_variable;
if ( $global_variable ) {
// Do Something ...
}
}
}
另一个选项是将全局变量指定为类属性,然后在每个方法中使用
$this->
:
class MyClass {
public $property;
public function __construct() {
global $global_variable;
$this->property = $global_variable;
add_action( \'init\', array( $this, \'method\') );
}
public function method() {
if ( $this->property ) {
// Do Something ...
}
}
}
然而,正如Nathan在回答中所指出的那样,您需要注意实例化类的时间,因为全局变量可能在那时不可用。
在这些情况下,您需要使用我的第一个示例,以便仅在已创建变量的点连接到生命周期的函数中引用该变量。