php加载autoload,php自动加载类__autoload()的方法_PHP教程
本文章来给大家简单的介绍一下关于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()的方法,希望此方法对各位同学会有所帮助哦。 作用:当在程序中需要实例化一...
php加载autoload,php自动加载类__autoload()的方法_PHP教程相关推荐
- php 自动加载函数,PHP自动加载的实例详解
一个PHP项目,通常只有一个入口文件index.php,我们通常会在这个入口文件中写入自动加载函数,用来require以后会实例化的类文件.如:spl_autoload_register(functi ...
- ios 平滑移动view_iOS 关于列表上拉(平滑加载数据)自动加载数据的问题
项目需求 我的的列表需要改变,原来的分页加载采用的是MJRefresh框架进行加载更多数据,这需要有一个上拉动作才能触发,而我的产品的意思是当快要滑动到底部时自动加载下一页数据.我自己看了一下,发现很 ...
- linux modprobe自动加载,modprobe 开机自动加载模块的方法 亲测成功
再次鄙视那些凭空臆测就发表技术文章和那些不分好坏疯狂采集的人.浪费大家的时间,你们罪当诛杀! 添加开机自动加载模块,在各大搜索引擎发现很多误导的技术文章,浪费我的时间,气死了. 下面是本人测试成功的. ...
- php教程链接,php自动给网址加上链接的方法,php网址链接方法_PHP教程
php自动给网址加上链接的方法,php网址链接方法 本文实例讲述了php自动给网址加上链接的方法.分享给大家供大家参考.具体实现方法如下: 这里自动匹配页面里的网址,包含http,ftp等,自动给网址 ...
- php随机问候语,php实现每天自动变换随机问候语的方法_php技巧
本文实例讲述了php实现每天自动变换随机问候语的方法.分享给大家供大家参考.具体分析如下: 这里预先定义一个php数组,里面存放一些随机问候语,调用的时候指定是按照天,月还是年来自动更换问候语,如果选 ...
- date月份加一_delphi 年月日自动加一减一函数,月加一,月减一
月份减一月情况: function GetLastMonth(ADate : TDateTime) : TDateTime; var dwYear, dwMonth, dwDay : Word; be ...
- 时间字段加一秒_Mysql自动加1秒的问题
我们需要根据日期入参,保存数据库该日期的当天最后时刻. 如2020-03-20,那么我们希望插入数据库的值为2020-03-20 23:59:59,下面是工具类,希望调用getDayStart()方法 ...
- php 加七天减七天,php实战第七天_PHP教程
总结一下学到的特效,获得焦点事件focus 失去焦点事件 blus 按下某键事件 keypress [javascript] / JavaScript Document // 作者QQ 4969288 ...
- Php的if自动转换类型,php之数据类型自动转换,php之数据类型转换_PHP教程
php之数据类型自动转换,php之数据类型转换 1:概述 ---php是一种弱类型的语言,它可以根据运行环境的变化而自动进行数据类型的转换 1.1转换成布尔类型的原则 以下值都将转换成布尔类型中的fa ...
最新文章
- 20165219王彦博《基于Cortex-M4的虚拟机制作与测试》课程设计个人报告
- 如何让Keil MDK兼容Keil C51?
- python垃圾分类图像识别算法_Python 实现一个简单的垃圾分类小游戏(已获校级二等奖)...
- 上海浦东新区计算机学校排名2015,2015年上海市浦东新区初级中学最新排名
- can-utils源码解析cansend
- linux应用开发:头文件和库文件的路径及使用
- 记一次曲折的jsp手工半盲注入
- html-css样式表
- Python基础知识有哪些?你都知道吗
- [Visual Studio] 重置默认设置 还原默认设置
- 【背包问题】基于matlab粒子群算法求解背包问题【含Matlab源码 1343期】
- xcode5 xcode6 xcode6.2beta网盘下载地址
- 从破解APP开始学Android——用户登录验证
- itext7 java转pdf添加图片
- 前端vue视频vue-video-player插件总结知识点案例(带源码)
- asp.Net Core 多线程之Task轻松学,快速上手
- Sharding-jdbc连接kingbasev8r6跨表分页
- 看看Pwn2Own黑客大赛有哪些新技术
- 倾斜摄影顶点XYZ转世界坐标系再转BLH
- 为什么在中国电子工程师不如搞软件的?
热门文章
- 理解Node.js的event loop
- DIV相对于父DIV底部对齐的实现方法-Div+CSS教程
- [转载] python中的for循环对象和循环退出
- json转string示例_C.示例中的String.Copy()方法
- 数组长度属性以及JavaScript中的示例
- c#异常处理_C#异常处理能力问题和解答 套装4
- android web通讯录,Android手机开发之通讯录
- sqldeveloper mysql迁移_通过SQL Developer工具将MySQL数据库内容迁移至Oracle的步骤
- python字母变成数字怎么办_在Python中将字母转换为数字
- 一个jsp能取到父类jsp的值吗_「Javaweb」ssm整合权限控制框架shiro,你知道怎么做吗?...