编程语言php面向对象全攻略 (十七) 自动加载类

自动加载类

很多开发者写面向对象的应用程序时,对每个类的定义建立一个PHP 源文件。一个很大
的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件的列表。
在软件开发的系统中,不可能把所有的类都写在一个PHP 文件中,当在一个PHP 文件
中需要调用另一个文件中声明的类时,就需要通过include 把这个文件引入。不过有的时候,
在文件众多的项目中,要一一将所需类的文件都include 进来,是一个很让人头疼的事,所以
我们能不能在用到什么类的时候,再把这个类所在的PHP 文件导入呢?这就是我们这里我们
要讲的自动加载类。
在PHP5 中,可以定义一个__autoload()函数,它会在试图使用尚未被定义的类时自动调
用,通过调用此函数,脚本引擎在PHP 出错失败前有了最后一个机会加载所需的类,
__autoload()函数接收的一个参数,就是你想加载的类的类名,所以你做项目时,在组织定义
类的文件名时,需要按照一定的规则,最好以类名为中心,也可以加上统一的前缀或后缀形
成文件名,比如xxx_classname.php、classname_xxx.php 以及就是classname.php 等等。
本例尝试分别从MyClass1.php 和MyClass2.php 文件中加载MyClass1 和MyClass2 类
代码片段

复制代码 代码如下:

<?php
function __autoload($classname) {
require_once $classname . '.php';
}
//MyClass1类不存在自动调用__autoload()函数,传入参数”MyClass1”
$obj = new MyClass1();
//MyClass2类不存在自动调用__autoload()函数,传入参数”MyClass2”
$obj2 = new MyClass2();
?>

文章来源:https://www.php.cn/faq/206854.html

(0)

相关推荐

  • 深入学习Composer原理(四)

    本系列第四篇文章,也是最后一篇 首先,我们先看看Composer的源码从哪里看起.当然,请您先准备好源码. composer init或者直接install之后,自动生成了一个vendor目录,这时您 ...

  • 深入学习Composer原理(二)

    本系列的第二篇文章,这次我们聊聊:spl_autoload_register()函数 PHP的SPL库作为扩展库,已经于5.3.0版本后默认保持开启,成为PHP的一组强大的核心扩展库.大家有时间可以多 ...

  • PHP的SPL扩展库(四)函数

    PHP的SPL扩展库(四)函数 今天我们继续来学习 SPL 中的内容,这篇文章的内容是比较简单的关于 SPL 中所提供的一系列函数相关的内容.其实在之前的不少文章中我们都已经接触过一些 SPL 中提供 ...

  • 深入学习Composer原理(三)

    本系列第三篇文章,一起了解下PSR规范中的PSR4和PSR0规范 首先恭喜大家,包括我自己,坚持到了现在.这篇文章之后,Composer的基础原理就清晰明了咯.也就是说,Composer所利用的正是s ...

  • PHP自动加载学习记录

    PHP自动加载学习记录

  • 自动加载

    Library目录下面的子目录都是一个根命名空间,也就是说以Think.Org为根命名空间的类都可以自动加载: new Think\Cache\Driver\File();new Org\Util\A ...

  • PHP中类的自动加载

    PHP中类的自动加载 在之前,我们已经学习过Composer自动加载的原理,其实就是利用了PHP中的类自动加载的特性.在文末有该系列文章的链接. PHP中类的自动加载主要依靠的是__autoload( ...

  • 深入学习Composer原理(一)

    Composer作为PHP的包管理工具,为PHPer们提供了丰富的类库,并且让PHP重焕新生,避免被时代淘汰的悲剧.可以说,Composer和PHP7是现在PHP开发者的标配,如果你还没用过Compo ...

  • 编程语言php面向对象全攻略 (七) 继承性

    11.类的继承 继承作为面向对象的三个重要特性的一个方面,在面向对象的领域有着极其重要的作用, 好像没听说哪个面向对象的语言不支持继承.继承是PHP5 面向对象程序设计的重要特性之 一,它是指建立一个 ...

  • 中高考前科学补脑全攻略 大脑最爱六类营养

    编者按:6月即将到来,中考.高考(微博)随之临近,有些家长盲目选购使用保健食品,既给考生健康带来隐患,也给不法企业非法牟利以可乘之机.国家食品药品监督管理局业已公开表示:国家从未批准过补脑.提高智商等 ...

  • #双12# 这里有一份“网格交易史上最全攻略”送给您 网格交易条件单:基于证券波动高抛低吸策略,自动...

    网格交易条件单:基于证券波动高抛低吸策略,自动化反复买卖赚取差价.投资者根据条件单设置,将资金分成多份,从基准价开始,每下跌x%就自动买入一份,每上涨y%就自动卖掉一份,在价格区间内,反复执行条件策略 ...

  • ​用自动弹簧竿钓鱼的技巧全攻略

    ​用自动弹簧竿钓鱼的技巧全攻略 钓法大全 2016-01-21 11:45:29 自自动钓鱼竿问世后,因其不但具有自动钓鱼的功能,同时具有海竿的功能,海竿在成都.重庆受到一定的影响.钓友从使用弹竿数量 ...

  • 肉友的多肉“安全度夏全攻略”彻底火了!能将多肉养肥养胖一圈儿不止!

    肉友的多肉“安全度夏全攻略”彻底火了!能将多肉养肥养胖一圈儿不止!

  • 盘点美到爆的小众景点,安徽古村落自驾游全攻略

    白墙黑瓦,小桥流水,伴着淡黄的油菜花,淅淅沥沥的小雨从紧绷着的乌云里飘落,拂过脸庞.拂过衣角,带着一丝丝凉意,一丝丝迷醉. 皖南 皖南,是一个很美的地方,这里有着人们最向往的写意风景,有着江南水乡唯美 ...

  • 【坪洲一日遊】打卡景點、美食、行山、交通全攻略(附坪洲船期表)

    坪洲只有三分一個長洲的大小,於60.70年代曾是工業重鎮,島上亦保留昔日手工業的痕跡.主要的商店和餐廳都集中在永安街和永興街,充滿懷舊和文創的氣氛.Klook 為大家介紹坪洲的好去處,熱門景點.特色小 ...

  • 冰箱参数全攻略,思维导图带你搞定冰箱选购!收藏就对了

    本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:石开大叔 创作立场声明:冰箱选购攻略! 写在前面 冰箱作为现在家庭生活中必不可少的电器,其发挥着越来越重要的作用,而它24小时工作的特性使得 ...

  • ■高温虾塘多发问题全攻略!对虾长得快,必须重视这几个管理要点

    高温季节是虾长得最快的时候,但也是虾最容易出问题的高峰期,不少养殖户因为不了解高温对水产养殖的危害,盲目喂料或下药,造成虾病的发生,对养殖效益造成很大损失. 5月份,对虾养殖也进入了高温期管理阶段,该 ...