background image

区分目录的时候怎么办?
这时我们需要修改 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(); 

 
这种方法的好处就是类名和文件路径只是用一个映射来维护,所以当文件结构改变的时候,
不需要修改类名,只需要将映射中对应的项修改就好了。
但是__autoload 在一个项目中只能使用一次,当你的项目引用了别人的一个项目,你的项目
中有一个__autoload,别人的项目也有一个__autoload,这样两个__autoload 就冲突了.解决的
办法就是修改__autoload 成为一个,这无疑是非常繁琐的,应用场景单一。
spl 的 autoload 加载实现:
spl 的 autoload 系列函数使用一个 autoload 调用堆栈,你可以使用 spl_autoload_register 注册
多个自定义的 autoload 函数,应用场景广泛
 

•在 test 目录下建立 in.php

 

,内容如下

代码如下:
 
<?php

class

 in {