![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
做大型项目时。需要准确地调用需要用到的函数,而不能包含数个函数而不管用不用得上,非常低效率。
这就需要一个规划。目录结构是规划的一个非常重要的组成部份。一般会用一个目录专门用来存放自定函数。自定义函数的文件名格式如:
function.get_ip.php函数名get_ip()与文件名对应
function.get_browser.php函数名get_browser()与文件名对应
function.size_readable.php函数名get_browser()与文件名对应
....
那么,如果需要使用到一个自定义函数时,一般都需要 include_once 自定义函数的文件名。然后执行相对应的自定义函数。这样一个反复的include操作,给编程带来一点不便。
如果,有象php5中的__autoload函数这样自动载入类文件,该多好呀!编程是多么愉块!
嗯,别急,慢慢来!
举个例子,看下面的这个函数。返回的是一个文件名,参数1及参数2。
文件名:function.b.php
[php]
function b($b1='1',$b2='2'){
$a .= 'function.b.php'."
";
$a .= 'b1:'.$b1."
";
$a .= 'b2:'.$b2."
";
return $a;
}
[/php]
[php]
class auto_load_function
{
var $pach;
//无此函数失败返回false
function r(){
$f = func_get_args();
$n = $this->pach.'function.'.$f['0'].'.php';
if(is_file($n)){
include_once($n);
return $f['0'] ( $f['1'], $f['2'], $f['3'], $f['4'], $f['5'], $f['6'], $f['7'], $f['8'], $f['9'], $f['10']);//预定10个参数,估计没几个人写的函数会超过10个参数的。如果真的超过10个参数,就自已加上去吧。
}
return false;
}
}
$r = new auto_load_function();
$r->path = './';
echo $r->r('b','cc','pp');//看到结果了吗?这句是关键,只一句就自动引入function.b.php函数文件并运行b()函数了,还可以传递参数cc与pp(参数可以是数组)。真是方便之极
[/php]
嗯,的确达php4中实现autoload自定义函数的目的 ! 很神奇吧?这是一种非常另类的用法! 在国内,还没有见过有实现这样的效果。在国外,也不知道有没有。
到底这样的技巧对你的编程有没有好处?自已取舍吧。

