找回密码
 注册
广告投放 虚位以待【阿里云】2核2G云新老同享 99元/年,续费同价做网站就用糖果主机-sugarhosts.comJtti.com-新加坡服务器,美国服务器,香港服务器
查看: 925|回复: 10

PHP5学习之 __autoload()

[复制链接]
发表于 2006 年 4 月 7 日 14:48:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
转载自:http://www.xphp.cn/wordpress/?p=5
作者:小XX
本文使用署名非商业协议
http://www.creativecommons.cn/licenses/by-nc/1.0/deed.zh

PHP5针对面向对象编程新增加了许多激动人心的特性,__autoload()函数就是其中之一,注意,autoload前面的下划线是两个。

这个函数最大的用处就是在实例化一个未明确定义的类时去寻找相应的文件并载入。举个例子:

  1. <?php

  2. $club = new Milan();

  3. $club->show() ;

  4. function __autoload($class_name) {

  5. include(”$class_name.php”);
  6. }

  7. ?>
复制代码

上述文件保存为show.php。Milan类的定义文件Milan.php如下:

  1. <?php

  2. class Milan {

  3. public function show() {

  4. echo “Forza Milan!”;

  5. }

  6. }

  7. ?>
复制代码

show.php中并没有明确的载入Milan.php文件,但是通过__autoload函数,在实例化Milan类的时候会自动把Milan.php包含进来。

我们把事情搞的复杂一点,修改Milan.php:

  1. <?php

  2. class Milan extends Club {

  3. public show() {

  4. echo $this->message;

  5. }
  6. }

  7. ?>
复制代码

同时增加一个文件Club.php:

  1. <?php

  2. class Club {

  3. public $message = “Forza Milan!”;

  4. }

  5. ?>
复制代码

Milan类继承自Club类,实例化Milan类的时候同样会自动载入Club.php。show.php运行的结果仍然是显示“Forza Milan!”。

可以想象,这个特性会给我们带来一些好处。一个复杂的web应用可能会由许许多多个封装好的类组成,一股脑地包含所有的类定义文件或者仔细地确定哪些文件应当被包含都会降低效率,__autoload则可以让我们充分地享受动态编程的好处。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
发表于 2006 年 4 月 7 日 14:49:27 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
好帖,收藏了
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2006 年 4 月 7 日 14:51:57 | 显示全部楼层
原帖由 思枫 于 2006-4-7 14:49 发表
好帖,收藏了

注意:署名非商业
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 4 月 7 日 14:52:41 | 显示全部楼层
自动载入
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 4 月 7 日 14:55:11 | 显示全部楼层
原帖由 姜运涛 于 2006-4-7 14:51 发表

注意:署名非商业

什么意思??
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2006 年 4 月 7 日 15:13:44 | 显示全部楼层
写上XX的名字而且不要用在商业用途上就OK
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 4 月 7 日 15:22:04 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
我也发一个
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2006 年 4 月 7 日 15:24:21 | 显示全部楼层
偶只是想骗点帖
把这帖打造成水帖是我的初衷
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

发表于 2006 年 4 月 7 日 15:56:12 | 显示全部楼层
php5 我连装都不会
找xx帮我装
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2006 年 4 月 7 日 16:03:16 | 显示全部楼层
我上次也没有编译成功
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2025 年 2 月 2 日 09:42 , Processed in 0.125206 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表