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类不存在 展开
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类不存在 展开
2个回答
2014-11-18
展开全部
没理解__autoload的作用啊,打开配置,还要把这个方法给实现
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询