当前位置:首页 > PHP教程 > php类库 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-03 22:10:29 浏览: 评论:0 

这篇文章主要介绍了PHP类的自动加载机制实现方法,结合实例形式分析了__autoload方法进行类自动加载操作的相关实现技巧与使用注意事项,需要的朋友可以参考下。

本文实例讲述了PHP类的自动加载机制实现方法,分享给大家供大家参考,具体如下:

Test1.class.php

  1. <?php 
  2. class Test1 
  3.   public static function test() { 
  4.     echo "hello,world!\n"
  5.   } 

Test2.class.php

  1. <?php 
  2. class Test2 
  3.   public static function test() { 
  4.     echo "你好,世界!\n"
  5.   } 

test.php

Test1::test();

如果直接写,会报错

Fatal error: Class 'Test1' not found in /home/wwwroot/default/codelabs/test.php on line 3

需要引入文件

  1. <?php 
  2. require "Test1.class.php"
  3. Test1::test(); 

这样就可以访问了。

但是,如果类越来越多,引入的代码就越来越多。

这个时候需要使用__autoload方法。

  1. <?php 
  2. Test1::test(); 
  3. function __autoload($class) { 
  4.   //require "Test1.class.php"; 
  5.   //require "Test2.class.php"; 
  6.   require __DIR__."/".$class.".class.php"// __DIR__是当前目录的绝对路径 

当程序发现没有引入类时,会自动调用这个方法,引入类文件。

进一步优化升级,支持多个自动加载。

  1. <?php 
  2. spl_autoload_register('__autoload1'); 
  3. spl_autoload_register('__autoload2'); 
  4. Test1::test(); 
  5. Test2::test(); 
  6. // 当检测到无类加载时,会自动调用这个方法 
  7. function __autoload1($class) { 
  8.   //require "Test1.class.php"; 
  9.   //require "Test2.class.php"; 
  10.   require __DIR__."/".$class.".class.php"// __DIR__是当前目录的绝对路径 
  11. function __autoload2($class) { 
  12.   //require "Test1.class.php"; 
  13.   //require "Test2.class.php"; 
  14.   require __DIR__."/".$class.".class.php"// __DIR__是当前目录的绝对路径 

很好,很强大!

Tags: PHP类自动加载机制

分享到: