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


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代码把全角数字转为半角数字
Dec 10 PHP
php 一元分词算法
Nov 30 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
php简单生成随机数的方法
Jul 30 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
Jun 03 PHP
laravel 配置路由 api和web定义的路由的区别详解
Sep 03 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 PHP
PHPUnit + Laravel单元测试常用技能
Nov 06 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
获取URL文件名后缀
2013/10/24 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
php中return的用法实例分析
2015/02/28 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
golang与PHP输出excel示例
2016/07/22 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
js constructor的实际作用分析
2011/11/15 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
python通过索引遍历列表的方法
2015/05/04 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
python exit出错原因整理
2020/08/31 Python
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
自动化毕业生专业自荐书范文
2014/02/04 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
琅琊山导游词
2015/02/05 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
员工加薪申请报告
2015/05/15 职场文书
导游词之日本富士山
2020/01/06 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL