php怎么用自动加载类?

index.php需要调用很多类,autoload.php文件该怎么写?还是不怎么懂,我的目录下有三个文件,分别是a.php,test.php,autoload.php该... index.php需要调用很多类,autoload.php文件该怎么写?
还是不怎么懂,我的目录下有三个文件,分别是a.php,test.php,autoload.php该怎么写?
展开
 我来答
莘赡05V
推荐于2016-10-22 · 知道合伙人软件行家
莘赡05V
知道合伙人软件行家
采纳数:1397 获赞数:3710
毕业安徽理工大学

向TA提问 私信TA
展开全部

php自动载方法有两种.

第一种方案用__autoload,这个函数较简单,也较弱.

但有一问题没有解决, 就是在include前判断文件是否存在的问题.

set_include_path('aa' . PATH_SEPARATOR . get_include_path());
function __autoload($className)
{
    //如果加这个检测, 因为此文件不在当前目录下,它就会检测不到文件存在, 
   //但include是能成功的
    if (file_exists($className . '.php')) {
   include_once($className . '.php');
    } else {
        exit('no file');
    }
}
 
$a = new Acls();

第二种方案用spl自动加载,这里具体说一下这个.

spl_autoload_register()

一个简单的例子

set_include_path('aa' . PATH_SEPARATOR . get_include_path());
//function __autoload($className)
//{
//    if (file_exists($className . '.php')) {
//        include_once($className . '.php');
//    } else {
//        exit('no file');
//    }
//}
 
spl_autoload_register();
 
$a = new Acls();
guairenshi
推荐于2016-01-18
知道答主
回答量:61
采纳率:0%
帮助的人:16.3万
展开全部
<?php

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

$ob = new classname(方法名); //如果本文件没有此方法,系统会自动调用__autoload();然后在里面require 类文件,注意,文件名,和类名要一样,比如data.php里面有class data{};
还有种方法就是
spl_autoload_register
这个方法能改变方法名,原理和__autoload一样,多了个功能,当然也更复杂。
大多情况下__autoload够了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式