[PHP]Smarty模板造成的自动加载函数__autoload失灵问题

自己实际开发过程中发现的,原因待查:


require_once VENDOR_PATH.'/smarty/MySmarty.class.php';

MySmarty为简单继承Smarty类的子类,下面用自动加载的方式引用一个User类加载不进来,提示找不到User类:


$user=new User();

 而随意包含其他普通类文件则没有问题: 

require_once VENDOR_PATH.'/test.php';

解决办法是不再用任何require_once等方式包含类文件,统一在init.php头文件的自动加载函数中设置搜索路径:


require_once 'includes/init.php';//包含头文件,含以下函数:

function __autoload($class){
	//echo 'Test!!!!!!!!!!!!!!!'.'<br>';//输出信息找错误!!!
	if(is_file(MDEL_PATH."/$class.class.php")){
		echo 'TEST1'.'<br>';
		require_once MDEL_PATH."/$class.class.php";
	}elseif(is_file(MINE_PATH."/$class.class.php")){
		echo 'TEST2'.'<br>';
		require_once MINE_PATH."/$class.class.php";
	}elseif(is_file(VENDOR_PATH."/smarty/$class.class.php")){
		echo 'TEST3'.'<br>';
		require_once VENDOR_PATH."/smarty/$class.class.php";
	}
}

$user=new User();//再次调用不再报错!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值