更新到smarty到3.0,结果发现项目中的__autoload()不能用了,原来是因为smarty改变了autoload的方式。
解决方法如下:
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");
用上面的方式还可以依顺序同时载入几个autoload方法
原理就是使用php的spl_autoload_register函数注册自义定的autoload函数。这样就解决了冲突的问题。