写这个问题时,我已经解决了我的问题,但我仍然有其他问题。基本上我想我在这里有变量的范围理解问题,但目前我不明白为什么这不起作用。有人可以为我指出吗?PHP从一个类包含的文件访问变量
我有这样的index.php中:
spl_autoload_register(function($class) { include_once("./Class/{$class}.php")); });
Site::Page("page");
的Site.php包含一个类中,调用的方法主要包括另一个文件:
class Site {
public static function Page($name = null) {
if ($name) $inc = @include_once("./Page/{$name}.php");
}
public static function Dialog($name = null) {
if ($name) $inc = @include_once("./Page/Dialogs/{$name}.php");
}
}
page.php文件包含此:
$DB = DB::GetInstance();
Site::Dialog("dialog");
and dialog.php contains this:
$Stuff = $DB->Query("Some SQL query here");
if ($Stuff) {
// Processing result
}
我遇到的问题是PHP给了我有关$ DB的错误,因此它无法调用dialog.php中的Query方法。我预计它是全球可用的,因为我只是包含另一个文件,但显然情况并非如此。
DB类是一个管理数据库连接的单例对象,我用dialog.php中的另一行解决了问题,我再次调用GetInstance()并将其分配给$ DB。
但是如果我想从index.php获得另一个(而不是单例)类实例,例如?我怎样才能访问它,为什么这种方法不工作?
我想'Site :: Page(“page”);'调用'page.php'文件。替换'spl_autoload_register(function($ class){include_once(“./ Class/{$ class} .php”)); }); Site :: Page(“page”);'带'Site :: Page(“page”); (函数($ class){include_once(“./ Class/{$ class} .php”)); });' –