zoukankan      html  css  js  c++  java
  • php中自动加载类_autoload()和spl_autoload_register()实例详解

    一、_autoload 自动加载类:当我们实例化一个未定义的类时,就会触此函数。到了php7.1以后版本不支持此函数好像抛弃了
      新建一个类文件名字自己随便去:news类在auto.php文件里面去实例news类而没有引入该类,可以用_autoload自动加载方法类去处理.

      news.class.php文件

    class news{ 
        function do_new() {
            echo 'aaa';
        }
    }

      auto.php文件使用_autoload函数要定义函数体自己去定义

    function __autoload( $class ) {
        $file = $class . '.class.php';
        if ( is_file($file) ) {
            require_once($file);
        }
    } 
    $obj = new news();
    $obj->do_new();

    二、spl_autoload_register()这个函数(PHP 5 >= 5.1.2)与__autoload有与曲同工之妙,通过加载自己建的函数里面处理加载文件,但是文件变量可以自动加入参数

      动态:实例调用的文件还是news.class.php实例化,spl_autoload文件如下:

    function load($class){ //定义引用文件的函数
        $file = $class . '.class.php';  
        if (is_file($file)) {  
            require_once($file);  
        }
    }
    spl_autoload_register( 'load' ); //调用自己定义的load函数
    $obj = new news();
    $obj->do_new();

      静态:spl_autoload_register() 调用静态方法

    class n_static {
        public static function load( $class ) {
            $file = $class . '.class.php';  
            if(is_file($file)) {  
                require_once($file);  
            } 
        }
    } 
    spl_autoload_register(  array('n_static','load')  );
    //另一种写法:spl_autoload_register(  "n_static::load"  ); 
    $obj = new news();
    $obj->do_new();

    上面完整代码下载地址:http://pan.baidu.com/s/1i5DZSmp

    密码:eexc

  • 相关阅读:
    基础命令
    RHEL7装机
    模拟项目
    配置NAT,PAT
    配置标准ACL,扩展ACL,命名ACL
    HSRP,STP配置
    三层交换配置及RIP动态路由
    vlan,trunk,DHCP,以太网通道
    ERRORS: MRBC.UserInfo.groups: (fields.E304) Reverse accessor for 'UserInfo.groups' clashes with reverse accessor for 'User.groups'. HINT: Add or change a related_name argument to the definition for '
    权限rbac(基于角色的访问控制)
  • 原文地址:https://www.cnblogs.com/sztx/p/9499763.html
Copyright © 2011-2022 走看看