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


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 相关文章推荐
默默简单的写了一个模板引擎
Jan 02 PHP
php Undefined index和Undefined variable的解决方法
Mar 27 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
Mar 02 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
Jun 13 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 PHP
微信公众平台开发实现2048游戏的方法
Apr 15 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
PHP-FPM实现性能优化
Mar 31 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 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中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
php查看当前Session的ID实例
2015/03/16 PHP
php获取系统变量方法小结
2015/05/29 PHP
Javascript的匿名函数小结
2009/12/31 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
python实现随机梯度下降法
2020/03/24 Python
python sort、sort_index方法代码实例
2019/03/28 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
django ajax发送post请求的两种方法
2020/01/05 Python
Django 实现图片上传和下载功能
2020/12/31 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
人事部主管岗位职责
2013/12/26 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
单位综合评价意见
2015/06/05 职场文书
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
Python中tqdm的使用和例子
2022/09/23 Python