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目录下面的类,运行结果如下:

    【总结】

  • 相关阅读:
    【Leetcode】23. Merge k Sorted Lists
    【Leetcode】109. Convert Sorted List to Binary Search Tree
    【Leetcode】142.Linked List Cycle II
    【Leetcode】143. Reorder List
    【Leetcode】147. Insertion Sort List
    【Leetcode】86. Partition List
    jenkins 配置安全邮件
    python 发送安全邮件
    phpstorm 同步远程服务器代码
    phpUnit 断言
  • 原文地址:https://www.cnblogs.com/rxbook/p/10340875.html
Copyright © 2011-2022 走看看