一、php中实现自动加载的方法
1.使用require,include,require_once,include_once手工进行加载。
2.使用__autoload来进行自动加载
3.使用spl的autoload来实现自动加载
手工加载的实现:
当需要加载的文件很少的时候我们可以使用第一个来完成。这样做很简单也没问题。
require_once \'a.php\';
require_once \'b.php\';
require_once \'c.php\';
但是当需要加载文件很多的时候这样做还行吗?需要写十个,二十个require_once 或者更多的时候我们该怎么办?
这个时候我们可以使用__autoload方法来简化我们的代码。
__autoload加载的实现:
我们在test目录下创建一个in.php文件,内容如下。
echo \'我是test下面的in.php<br />\';
然后在test目录下创建一个loader.php,内容如下。
// 需要重载__autoload方法,自定义包含类文件的路径
function __autoload($classname)
{
$class_file = strtolower($classname).\".php\";
if (file_exists($class_file)){
require_once($class_file);
}
}
@$test = new in(); // 执行到这里会输出 <SPAN style=\"FONT-FAMILY: Arial, Helvetica, sans-serif\">我是test下面的in.php</SPAN>
没问题,成功了!我们还可以创建其他的文件来进行加载,但是当需要的文件很多需要区分目录的时候怎么办?
这时我们需要修改loader.php可以使用映射来找到要加载的文件。
function __autoload($class_name) {
$map = array(
\'index\' => \'./include/index.php\',
\'in\' => \'./in.php\'
);
if (file_exists($map[$class_name]) && isset($map[$class_name])) {
require_once $map[$class_name];
}
}
new index();