如何在CI框架中使用__autoload()函数自动加载类

xyz1253587469 2016-07-12 07:00:43
<?php

function __autoload ( $class_name ) {
require_once $class_name . '.php' ;
}
class abc{

public function a(){
new b();
//spl_autoload_register ( $class_name );
}
}

$abc = new abc;
$abc->a();


?>

...全文
928 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayzen1988 2016-07-13
  • 打赏
  • 举报
回复
你没按我说的来,让我怎么说?
xyz1253587469 2016-07-13
  • 打赏
  • 举报
回复
引用 2 楼 zhangbin1988 的回复:


1、放在会加载的helper里
function __autoload ( $class_name ) {
//最好加上class路径
require_once $class_name . '.php' ;
//比方说放在libraries文件夹下
require_once APPPATH . 'libraries/' . $class_name . '.php' ;
}

2、类文件放在指定文件夹下
class abc{
public function a(){
new b();
//spl_autoload_register ( $class_name );
}
}

3、在一个控制器中实现
$abc = new abc();
$abc->a();

试过你这种办法,没用。在我贴的代码中,__autoload 是适用的,但是在CI框架中没用。有可能是和CI框架的底层实现有关。最后用的spl_autoload_register函数,成功了。
ayzen1988 2016-07-12
  • 打赏
  • 举报
回复


1、放在会加载的helper里
function  __autoload ( $class_name ) {
    //最好加上class路径
    require_once  $class_name  .  '.php' ;
    //比方说放在libraries文件夹下
    require_once  APPPATH . 'libraries/' . $class_name  .  '.php' ;
}

2、类文件放在指定文件夹下
class abc{
    public function a(){
        new b();
        //spl_autoload_register ( $class_name );
    }
}

3、在一个控制器中实现
$abc = new abc();
$abc->a();
xuzuning 2016-07-12
  • 打赏
  • 举报
回复
把定义类 b 的程序文件,保存为 b.php

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧