【发布时间】:2026-01-16 10:10:01
【问题描述】:
我在为我正在处理的框架项目创建“超级对象”(类似于 CodeIgniter)时遇到了一些问题。
我想创建一个超级对象,我的所有其他类都将运行它。我这样做了,但如果不在每个函数中使用 global 关键字,我似乎无法在每个类中使用我的超级对象的对象。
我有这样的事情:
class a
{
function aa()
{
return 'class a';
}
}
class b
{
function bb()
{
$blah->a->aa();
}
}
class superobj
{
function loadClass($class)
{
$this->$class = new $class;
}
}
class blah extends superobj
{
function __construct()
{
$this->loadClass('a');
$this->loadClass('b');
}
}
$blah = new $blah;
所以如果我运行它,我会收到一个错误,因为我无法访问 aa 方法。如果我将全局 $blah 放入方法 bb 中,那么它可以工作(或者至少在我的实际项目中可以,我不知道这个 5 秒的模型呵呵)。
那么有什么方法可以使 $blah 对象成为全局对象,这样我就不需要为每个方法都引用它,或者有没有更好的方法来实现我想要做的事情?
我不太擅长 OOP...
【问题讨论】:
标签: php