PHP:在类中设置全局变量

PHP:在类中设置全局变量,php,class,variables,global-variables,Php,Class,Variables,Global Variables,在PHP类中,是否有方法设置不需要在每个函数中调用的全局变量 例如,我有一个名为$settings的变量,它包含一个值数组: Array( [option_1] => on, [option_2] => on, [option_3] => off ) get\u option()函数来自WordPress。$settings数组中的值确定要运行的函数: class My_Class { public function __construct() {

在PHP类中,是否有方法设置不需要在每个函数中调用的全局变量

例如,我有一个名为
$settings
的变量,它包含一个值数组:

Array( [option_1] => on, [option_2] => on, [option_3] => off )
get\u option()
函数来自WordPress。
$settings
数组中的值确定要运行的函数:

class My_Class {

    public function __construct() {
        # Get array of options
        $settings = get_option( 'my_options' );

        if ( is_array( $settings ) || is_object( $settings ) ) {
            if ( $settings['option_1'] == 'on' ) {
                add_action( 'tag_1', array( $this, 'function_1' ) );
            }

            if ( $settings['option_2'] == 'on' ) {
                add_action( 'tag_2', array( $this, 'function_2' ) );
            }
        }
    }

    public function function_1() {
        # Call the array of options again
        $settings = get_option( 'my_options' );

        echo 'This option is ' . $settings['option_1'];
    }

    public function function_2() {
        # Code here...
    }

new My_Class();
但是,我在我的
\uu构造()
函数\u 1()
中调用了以下行两次:

与在两个不同的函数中两次调用这个变量不同,调用可以在我的类的不同函数中使用的同一个变量的正确方法是什么?我尝试将
$settings
变量函数添加到
类My_class
的正下方,但没有成功:

class My_Class {

    global $settings = get_option( 'my_options' );
    # Rest of the code below...

可以将$settings声明为类属性

protected $settings;
然后在
\uuu结构中

$this->settings = get_option( 'my_options' );
然后,您可以使用
$this->settings

public function function_1() {
    echo 'This option is ' . $this->settings['option_1'];
}
有关
属性的更多详细信息,请参阅PHP文档

public function function_1() {
    echo 'This option is ' . $this->settings['option_1'];
}