VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • PHP类的自动加载机制实现方法分析

这篇文章主要介绍了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__是当前目录的绝对路径 

很好,很强大!

 

出处:http://www.phpfensi.com/php/20211103/18396.html


相关教程