• PHP面向对象之类的自动加载


    类的自动加载

    含义:

    当某行代码需要一个类的时候,php的内部机制可以做到“自动加载该类文件”,以满足该行需要一个类的这种需求。

    什么时候需要一个类?

    1new一个对象的时候;

    2,使用一个类的静态方法的时候;

    3,定义一个类(B)并以另一个类(A)作为父类的时候;

     

    条件和要求

    1, 当需要一个类的时候,就会自动调用某个函数(默认是__autoload),并传入所需要的类的名字

    2, 一个类应该保存到一个独立的“类文件中”:即其中只有该类的定义,没有别的代码;

    3,习惯上,类文件的命名要有一定的“规则”,通常是:类名.class.php

    4,通常,我们需要将各种类,存储在一些特定的目录中,以方便确定其位置!

    5,在该自动加载的函数中,“充分”使用传过来的类名,以构建一个合适的文件路径并载入;

     

    自定义自动加载函数:

    刚才,__autoload()函数,是系统内部的自动加载函数,我们只是定义其函数体。

    但:

    我们可以使用更多函数(自定义的),来实现更灵活的自动加载!

    基本模式为:

    spl_autoload_register(“函数1”); //声明“函数1”作为自动加载函数;

    spl_autoload_register(“函数2”); //声明“函数2”也作为自动加载函数;

    .........

    然后,就去定义这些函数,跟定义__autoload()函数一样:

    function  函数1( $class_name ){

    //.......

    }

    function  函数2( $class_name ){

    //.......

    }

    .............

    这样,系统就会一次调用这些自动加载函数去加载所需要的类,直到加载成功!

     

  • 相关阅读:
    bzoj 1927: [Sdoi2010]星际竞速
    bzoj 1926: [Sdoi2010]粟粟的书架
    bzoj 1923: [Sdoi2010]外星千足虫
    bzoj 1922: [Sdoi2010]大陆争霸
    bzoj 1911: [Apio2010]特别行动队
    bzoj 1878: [SDOI2009]HH的项链
    bzoj 1877: [SDOI2009]晨跑
    bzoj 1856: [Scoi2010]字符串
    bzoj 1854: [Scoi2010]游戏
    python小练习,打出1-100之间的所有偶数,设计一个函数,在桌面上创建10个文件,并以数字命名,复利计算函数
  • 原文地址:https://www.cnblogs.com/aipiaoborensheng/p/8471781.html
Copyright © 2020-2023  润新知