如何设置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();方法反复