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


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 google或baidu分页代码
Nov 26 PHP
在PHP中检查PHP文件是否有语法错误的方法
Dec 23 PHP
php上传文件的增强函数
Jul 21 PHP
解析zend studio中直接导入svn中的项目的方法步骤
Jun 21 PHP
php获取操作系统语言代码
Nov 04 PHP
PHP5中实现多态的两种方法实例分享
Apr 21 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
php调用自己java程序的方法详解
May 13 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
May 06 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
php生成缩略图的类代码
2008/10/02 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
详解PHP中的PDO类
2015/07/06 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
js下用eval生成JSON对象
2010/09/17 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
three.js实现圆柱体
2018/12/30 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
python实现自动打卡的示例代码
2020/10/10 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
你对IPv6了解程度
2016/02/09 面试题
维德科技C#面试题笔试题
2015/12/09 面试题
sealed修饰符是干什么的
2012/10/23 面试题
《观舞记》教学反思
2014/04/16 职场文书
个人授权委托书范本
2014/09/14 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书