如何设置PHP类中任何方法都可以访问的变量值?

如何设置PHP类中任何方法都可以访问的变量值?,php,oop,Php,Oop,我在课堂上尝试使用两种方法 类结构与此类似 class Test extends Something { private $dir; public function __construct() { parent::__construct(); } private function check_theme() { // do some checking here $this->dir = //

我在课堂上尝试使用两种方法

类结构与此类似

class Test extends Something
{
    private $dir;

    public function __construct()
    {
        parent::__construct();
    }

    private function check_theme()
    {
        // do some checking here
        $this->dir = // outcome of the checking
    }

    public function load_theme()
    {
        $this->check_theme();
    }

    public function load_file()
    {
        $this->dir . $path . $to . $file
    }
}
好的,现在,只有当我运行类似

$test = new Test();

$test->load_theme();
$test->load_file();
但是现在我有一个不同的方法,我想直接访问,但是我真的想让这个方法知道
$dir
的值是多少


所以如果我使用
$test->load_file()
它将加载文件,因为
$dir
的值已由
$test->check_theme()设置

我希望我能正确回答你的问题。我建议在设置
$dir
的值时保留一个标志

在这里,在使用
$dir
值之前,我们先进行测试以确保其值已设置。如果没有,我们调用
$load\u theme()
,调用
检查\u theme()
的顺序与您在问题中显示的顺序相同

class Test extends Something
{
    private $dir;
    private $file_loaded;

    public function __construct()
    {
        parent::__construct();
        $this->file_loaded = false;

    }

    private function check_theme()
    {
        // do some checking here
        $this->dir = // outcome of the checking
    }

    public function load_theme()
    {
        $this->check_theme();
        $this->file_loaded = true;   
    }

    public function load_file()
    {
        if (!$this->file_loaded)
            $this->load_theme();            
        $this->dir . $path . $to . $file
    }
}

private$dir=$GLOBALS['dir']?只是一个想法。。从未尝试过。您发布的代码已经可以从其他方法访问
$dir
。我说不出你的问题是什么。嗯,像这样的问题可能有助于检查。我只是想知道我是否能够从任何方法访问$dir,而不需要首先运行check_theme();方法反复