第十二节--类的自动加载


Posted in PHP onNovember 16, 2006

/*
+-------------------------------------------------------------------------------+
| = 本文为Haohappy读<<Core PHP Programming>> 
| = 中Classes and Objects一章的笔记 
| = 翻译为主+个人心得 
| = 为避免可能发生的不必要的麻烦请勿转载,谢谢 
| = 欢迎批评指正,希望和所有PHP爱好者共同进步! 
+-------------------------------------------------------------------------------+
*/

第十二节--类的自动加载

当你尝试使用一个未定义的类时,PHP会报告一个致命错误. 解决方法就是添加一个类,可以用include包含一个文件. 毕竟你知道要用到哪个类. 但是,PHP提供了类的自动加载功能, 这可以节省编程的时间. 当你尝试使用一个PHP没有组织到的类, 它会寻找一个__autoload的全局函数. 如果存在这个函数,PHP会用一个参数来调用它,参数即类的名称. 

例子6.15说明了__autoload是如何使用的. 它假设当前目录下每个文件对应一个类. 当脚本尝试来产生一个类User的实例,PHP会执行__autoload. 脚本假设class_User.php中定义有User类.. 不管调用时是大写还是小写,PHP将返回名称的小写.

Listing 6.15 Class autoloading

<?php   
   //define autoload function   
   function __autoload($class)   
   {   
       include("class_" . ucfirst($class) . ".php");   
   }      //use a class that must be autoloaded   
   $u = new User;   
   $u->name = "Leon";   
   $u->printName();   
?>  
PHP 相关文章推荐
PHP 如何向 MySQL 发送数据
Oct 09 PHP
PHP Mysql编程之高级技巧
Aug 27 PHP
Discuz 模板语句分析及知识技巧
Aug 21 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 PHP
PHP微信PC二维码登陆的实现思路
Jul 13 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
laravel框架中间件简单使用方法示例
Jan 25 PHP
第十一节--重载
Nov 16 #PHP
第十节--抽象方法和抽象类
Nov 16 #PHP
第九节--绑定
Nov 16 #PHP
第八节--访问方式
Nov 16 #PHP
第七节--类的静态成员
Nov 16 #PHP
第六节--访问属性和方法
Nov 16 #PHP
第五节--克隆
Nov 16 #PHP
You might like
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
php 动态多文件上传
2009/01/18 PHP
基于php权限分配的实现代码
2013/04/28 PHP
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
javascript来定义类的规范小结
2010/11/19 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
Python的requests网络编程包使用教程
2016/07/11 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
应用心理学个人求职信范文
2013/12/11 职场文书
中学教师培训制度
2014/01/31 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
禁止酒驾标语
2014/06/25 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
2015教师节通讯稿
2015/07/20 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
redis复制有可能碰到的问题汇总
2022/04/03 Redis
Nginx限流和黑名单配置
2022/05/20 Servers