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


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计划任务、定时执行任务的实现代码
Apr 23 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 PHP
WordPress中查询文章的循环Loop结构及用法分析
Dec 17 PHP
php强大的时间转换函数strtotime
Feb 18 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
PHP查询分页的实现代码
Jun 09 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
php+js实现裁剪任意形状图片
Oct 31 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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 构造函数construct的前下划线是双的_
2009/12/08 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
JS实现一键回顶功能示例代码
2013/10/28 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
JavaScript函数表达式详解及实例
2017/05/05 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
Python常用库推荐
2016/12/04 Python
Python的装饰器使用详解
2017/06/26 Python
python数据结构之链表详解
2017/09/12 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
Python中 map()函数的用法详解
2018/07/10 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
美国在线面料商店:Online Fabric Store
2018/07/26 全球购物
给海归自荐信的建议
2013/12/13 职场文书
班队活动设计方案
2014/01/30 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers