更新到smarty到3.0,结果发现项目中的__autoload()不能用了,原来是因为smarty改变了autoload的方式。
解决方法如下:
<?PHP
/**
* PHP smarty和_autoload()冲突的解决方法
* @param
* @arrange (512.笔记) jb51.cc
**/
function autoload($className){
if (file_exists(SITEROOT.'include/module/'.$className.'.class.PHP'))
include SITEROOT.'include/module/'.$className.'.class.PHP';
else die('类'.$className.'文件不存在');
}
spl_autoload_register("autoload");
/*** 来自编程之家 jb51.cc(jb51.cc) ***/
用上面的方式还可以依顺序同时载入几个autoload方法 原理就是使用PHP的spl_autoload_register函数注册自义定的autoload函数。这样就解决了冲突的问题。