抱歉,如果我解释得不好并且没有意义,我有点困惑。
我希望能够将 PHP 文件的输出包含在给定位置的另一个文件中,为此,我使用了缓冲区并包含/要求:
if (file_exists(CUSTOM_PHP_DIR."/".$filename)) {
ob_start();
include(CUSTOM_PHP_DIR."/".$filename);
$html = ob_get_clean();
}
echo $html; //where I want the results to go.
问题是,我已将上述内容包含在类的方法中;因此,当文件包含时 -$this
包含执行包含的类的属性和方法,这完全破坏了包含中的内容,即:
myClass::getSomethingFromDatabase();
我知道它破坏了 myClass 是数据库类的扩展,它调用自身$this
来做很多事情,而 $this 现在是对包含该文件的不同类的引用。
我通过实例化我想在包含中使用的对象暂时解决了这个问题,这需要数据库凭据:
$newObject = new myClass(DB_CREDENTIALS);
$newObject->getSomethingFromDatabase();
我不得不define
将数据库凭据作为常量来快速轻松地获取它们,我想避免这样做。我是否错过了一种更好的方法来使静态呼叫正常工作?