我们可以通过编写__autoload函数来让php自动加载类,而不必写一个长长的包含文件列表。
function __autoload($class)
{
$file = $class . '.php';
if (file_exists($file)) {
require_once($file);
}
}
$a = new A();
我们可以根据自己的需要定义__autoload加载类的规则。假如我们不想自动加载的时候调用__autoload,而是调用我们自己的函数(或者类方法),
我们可以使用spl_autoload_register来注册我们自己的autoload函数。它的函数原型如下:
bool spl_autoload_register ( [callback $autoload_function] )
我们继续改写上面那个例子:
function loader($class)
{
$file = $class . '.php';
if (file_exists($file)) {
require_once($file);
}
}
spl_autoload_register('loader');
$a = new A();
也可以调用类中的方法
class Loader
{
public static function loadClass($class)
{
$file = $class . '.php';
if (file_exists($file)) {
require_once($file);
}
}
}
spl_autoload_register(array('Loader', 'loadClass'));
$a = new A();