php在init中用__autoload自动加载类,为什么在别的页面一直提示类不存在 10

这是init.php文件defined('ACC')||exit('ACCDenied');define('ROOT',str_replace('\\','/',dirn... 这是init.php文件

defined('ACC')||exit('ACC Denied');
define('ROOT',str_replace('\\','/',dirname(dirname(__FILE__))) . '/');
define('DEBUG',true);
require(ROOT . 'include/lib_base.php');
function __autoload($class) {
if(strtolower(substr($class,-5)) == 'model') {
require(ROOT . 'Model/' . $class . '.class.php');
} else {
require(ROOT . 'include/' . $class . '.class.php');
}
}
这是Model文件
defined('ACC')||exit('ACC Denied');
class Model {
protected $table = NULL; // 是model所控制的表
protected $db = NULL; // 是引入的mysql对象
public function __construct() {
$this->db = mysql::getIns();
}
public function table($table) {
$this->table = $table;
}
}
这是CatModel文件
class CatModel extends Model{
protected $table="cate";
public function add($data){
return $this->db->autoExecute($this->table,$data);
}
public function select(){
$sql="select cat_name,parent_id from ".$this->table;
return $this->db->getAll($sql);
}
这是catadd.php文件
define("ACC",true);
require_once '../include/init.php';
require '../libs/Smarty.class.php';

$catModel=new CatModel();
$catlist=$catModel->select();

$smarty=new Smarty();
$smarty->template_dir="../admin/templates";
$smarty->compile_dir="../admin/templates_c";
$smarty->left_delimiter="<{";
$smarty->right_delimiter="}>";
$smarty->assign("res",$catlist);
$smarty->display("cateadd.html");
运行catadd.php时一直出现CatModel类不存在,是不是由自动加载引起的,我在解决的时候发现自动加载是可以用的啊,为什么这里一直提示CatModel类不存在
展开
 我来答
匿名用户
2014-11-18
展开全部
没理解__autoload的作用啊,打开配置,还要把这个方法给实现
创作者BbPV9CfuDM
2014-11-17 · TA获得超过1445个赞
知道小有建树答主
回答量:977
采纳率:85%
帮助的人:182万
展开全部
这两类又没关系,要么是同一个类里,要么是继承类
追问
model和catmodel吗?是继承类啊
追答
$catModel=new CatModel(); 这里你实例化CatModel 有引入CatModel文件吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式