自定加载的简单实例
如果想要加載一個(gè)目錄下的多個(gè)類文件,并且含有一定的特征。
如:D:/AppServ/www/myExercise/下
新建了幾個(gè)文件夾和文件
文件夾mods->inmod.mod.php
->oumod.mod.php
文件夾libs->inlib.lib.php
類名與文件有一定的關(guān)聯(lián),這兒的類名與文件的第一個(gè).號(hào)前相同,后面都最為后綴。
inmod.mod.php中的代碼:
<?php
class inmod {
function __construct() {
echo '我是mods下的in';
}
function test() {
echo 'inmod test';
}
}
oumod.mod.php中的代碼:
<?php
class oumod {
function __construct() {
echo '我是mods下的ou';
}
function test() {
echo 'oumod test';
}
}
inlib.lib.php中的代碼:
<?php
class inlib {
function __construct() {
echo '我是libs下的in';
}
}
?
然后在auto_load文件加下新建一個(gè)類,load.php
代碼如下:
<?php
class Loader {
/**
* 自動(dòng)加載類
* @param $class 類名
*/
public static function mods($class) {
if ($class) {
set_include_path('D:/AppServ/www/myExercise/auto_load/mods');
spl_autoload_extensions('.mod.php');
spl_autoload(strtolower($class));
}
}
public static function libs($class) {
if ($class) {
set_include_path('D:/AppServ/www/myExercise/auto_load/libs');
spl_autoload_extensions('.lib.php');
spl_autoload(strtolower($class));
}
}
}
spl_autoload_register(array('Loader', 'mods')); // 注冊(cè)加載Loader類下的mods方法從而促發(fā)spl_autoload函數(shù)調(diào)用
spl_autoload_register(array('Loader', 'libs'));
新建一個(gè)test.php文件:
<?php
require 'loader.php';
//$inmoad = new inmod();
inmod::test();
echo '<br>';
oumod::test();
不會(huì)報(bào)錯(cuò),仍然會(huì)輸出類中的結(jié)果,說明類已經(jīng)加載進(jìn)來了。
結(jié)果如下:
inmod test
oumod test
總結(jié)
- 上一篇: Oracle技术之ASM上恢复STAND
- 下一篇: easyui中combotree只能选子