php加载autoload,php自动加载类__autoload()的方法_PHP教程

本文详细介绍了PHP中的__autoload()函数,用于自动加载未定义的类,避免了大量使用include或require的繁琐。通过示例代码展示了如何定义__autoload()函数,以及如何在不同文件间实例化类,提高了代码的效率和组织性。在示例中,通过__autoload()实现了多个类文件的自动加载,并成功执行了类的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文章来给大家简单的介绍一下关于php自动加载类__autoload()的方法,希望此方法对各位同学会有所帮助哦。

作用:当在程序中需要实例化一个类,刚好这这类又不是在本文件中,则需要用包含函数将外部文件包含进来。但是,当要用的外部类很多后,就会发现用包含函数会显得十分的繁琐,这是就可以用__autoload()全局函数自动加载类。

当在index.php中要使用前面三个类时,就需要写三个例如include("name.class.php") 这样的方法,效率会十分低,但如果使用了__autoload()函数就不用这样麻烦了,只需要写这样一个函数方法就可以了:

在 PHP 5 中,不再需要这样了。可以定义一个 __autoload() 函数,它会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。

在下例中将通过实例来说明 __autoload() 是如何使用的。

首先定义一个类ClassA,文件名为ClassA.class.php

代码如下

复制代码

class ClassA{

public function funa(){

echo "classA loaded successfully!

";

}

}

然后在相同目录下再定义另一个类ClassB,文件名为ClassB.class.php,ClassB继承ClassA

代码如下

复制代码

class ClassB extends ClassA {

public function funb(){

echo "classB also loaded successfully!

";

}

}

最后在与上面两个文件相同目录下再定义一个autoload.php(这个文件名随便取)

代码如下

复制代码

function __autoload($class_name) {

require_once ("./".ucfirst($class_name).'.class.php');//ucfirst使类名首字母转换为大写

}

$obj = new ClassB();

$obj->funa();

$obj->funb();

?>

运行autoload.php的程序,看结果:

classA loaded successfully!

classB also loaded successfully!

例子: 文件夹下有这样几个文件:

User.class.php;

Person.class.php;

Message.class.php;

index.php;

我们就可以这样操作

代码如下

复制代码

index.php

function __autoload($className){ //ucfirst() 将字符串首字母变为大写

include("ucfirst($className)".class.".php"); }

/**************

*例如:在index.php文件中实例化User.class.php中的User类,如果不存在则自动调用__autoload()函数

代码如下

复制代码

*,将类名User作为参数传入

*************/

$user=new User();

//通过自动加载类调用User.class.php文件

$person=new Person();

//通过自动加载类调用Person.class.php文件

$Message=new Message();

//通过自动加载类调用Message.classphp文件 function="" message="new" person="new" user="new">

http://www.bkjia.com/PHPjc/632689.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632689.htmlTechArticle本文章来给大家简单的介绍一下关于php自动加载类__autoload()的方法,希望此方法对各位同学会有所帮助哦。 作用:当在程序中需要实例化一...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值