如何通过PHP类中的任何方法设置变量的值?

时间:2011-07-02 05:56:45

标签: php oop

我正在尝试在班上使用2种方法。

类结构看起来与此类似

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();设置

1 个答案:

答案 0 :(得分:1)

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

在使用$dir值之前,我们会进行测试以确保其值已设置。如果不是,我们会拨打$load_theme(),只会按照您在问题中显示的顺序调用check_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
    }
}