加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.cn/)- 云渲染、网络安全、数据安全、数据分析、人体识别!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP类的自动加载机制实现方法分析

发布时间:2022-06-20 09:06:14 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP类的自动加载机制实现方法,结合实例形式分析了__autoload方法进行类自动加载操作的相关实现技巧与使用注意事项,需要的朋友可以参考下。 本文实例讲述了PHP类的自动加载机制实现方法,分享给大家供大家参考,具体如下: Test1.class.php
  这篇文章主要介绍了PHP类的自动加载机制实现方法,结合实例形式分析了__autoload方法进行类自动加载操作的相关实现技巧与使用注意事项,需要的朋友可以参考下。
 
  本文实例讲述了PHP类的自动加载机制实现方法,分享给大家供大家参考,具体如下:
 
  Test1.class.php
 
  <?php
  class Test1
  {
    public static function test() {
      echo "hello,world!n";
    }
  }
  Test2.class.php
 
  <?php
  class Test2
  {
    public static function test() {
      echo "你好,世界!n";
    }
  }
  test.php
 
  Test1::test();
 
  如果直接写,会报错
 
  Fatal error: Class 'Test1' not found in /home/wwwroot/default/codelabs/test.php on line 3
 
  需要引入文件
 
  <?php
  require "Test1.class.php";
  Test1::test();
  这样就可以访问了。
 
  但是,如果类越来越多,引入的代码就越来越多。
 
  这个时候需要使用__autoload方法。
 
  <?php
  Test1::test();
  function __autoload($class) {
    //require "Test1.class.php";
    //require "Test2.class.php";
    require __DIR__."/".$class.".class.php"; // __DIR__是当前目录的绝对路径
  }
  当程序发现没有引入类时,会自动调用这个方法,引入类文件。
 
  进一步优化升级,支持多个自动加载。
 
  <?php
  spl_autoload_register('__autoload1');
  spl_autoload_register('__autoload2');
  Test1::test();
  Test2::test();
  // 当检测到无类加载时,会自动调用这个方法
  function __autoload1($class) {
    //require "Test1.class.php";
    //require "Test2.class.php";
    require __DIR__."/".$class.".class.php"; // __DIR__是当前目录的绝对路径
  }
  function __autoload2($class) {
    //require "Test1.class.php";
    //require "Test2.class.php";
    require __DIR__."/".$class.".class.php"; // __DIR__是当前目录的绝对路径
  }
  很好,很强大!

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读