我是PHP
的新手,已经从Moodle
开始了。在Moodle中,我发现有一个全局对象$DB
, moodle_database
类的实例。我发现moodle_database
是一个抽象类。moodle_database
的各种功能也都是抽象的。
global $DB;
$DB = new moodle_database();
And moodle_database
:
abstract class moodle_database
如何创建抽象类的实例?即使moodle_database
是由其他类扩展的,并且$DB是该类的对象,事情也可以被认为是简单的。
在lib/setup.php中,有一个对setup_DB()的调用,它在lib/dmllib.php中定义。
这个,反过来,调用$DB = moodle_database::get_driver_instance()实例化moodle_database的子类。
我不知道您引用的代码行是在哪里找到的,但我怀疑它实际上永远不会运行,只是在那里为ide提供类型提示,因此在编写moodle代码时自动完成将起作用。