zoukankan      html  css  js  c++  java
  • PHP自动加载SPL的四种处理方式

    libs目录下有3个类文件:

    Test.class.php

    <?php
    class Test
    {
        public function __construct()
        {
            echo "Loading Test.class.php <br>";
        }
    }

    Test.php

    <?php
    
    class Test
    {
        public function __construct()
        {
            echo "Loading Test.php <br>";
        }
    }

    User.php

    <?php
    
    class User
    {
        public function __construct()
        {
            echo "Loading User.php <br>";
        }
    }

    【方法1】

    <?php
    
    //可以传入多个参数,逗号分隔,多个相同的类名最先找到的最先匹配
    spl_autoload_extensions('.class.php,.php');
    
    //设置autoload寻找php定义的类文件的目录,多个目录用PATH_SEPARATOR常量 分隔
    $path = get_include_path() . PATH_SEPARATOR . "libs/";
    set_include_path($path);
    
    //autoload注册
    spl_autoload_register();
    
    new Test();
    new User();

    【方法2】

    <?php
    //定义__autoload函数,页面运行时会先执行这里面的代码
    function __autoload($class_name)
    {
        require_once "libs/" . $class_name . ".php";
        echo "已加载类 " . $class_name . "<br>";
    }
    
    new Test();
    new User();

    【方法3】

    <?php
    //自定义的加载类
    function myLoader($class_name)
    {
        require_once "libs/" . $class_name . ".php";
        echo "已加载类 " . $class_name . "<br>";
    }
    
    //将自定义的类名载入
    spl_autoload_register('myLoader');
    
    new Test();
    new User();

    【方法4】

    <?php
    //自定义的加载类
    function myLoader($class_name)
    {
        set_include_path("libs/");
        spl_autoload($class_name);
        echo "已加载类 " . $class_name . "<br>";
    }
    
    //将自定义的类名载入
    spl_autoload_register('myLoader');
    
    new Test();
    new User();

    以上四种方法都可以自动加载libs目录下面的类,运行结果如下:

    【总结】

  • 相关阅读:
    flex4的s:states和mx:states的区别
    Flash Builder快捷键
    PE经典DIY案例1:全解开方案让量产PE也能
    U+V2深度隐藏PE制作技术初探
    SQL Server存储过程的删除方法
    利用sql server直接创建日历
    推荐一个好的数据库工具Embarcadero DBArtisan
    css样式大全(整理版)
    asp.net Excel导入&导出
    SQL删除重复数据方法
  • 原文地址:https://www.cnblogs.com/rxbook/p/10340875.html
Copyright © 2011-2022 走看看