php中__autoload和spl_autoload_register的用法

来源:互联网 发布:淘宝卖家刷200单多少钱 编辑:程序博客网 时间:2024/05/22 02:03

__autoload方法是用于类的的自动加载的。如果没有这个方法,在调用各种类的时候则需要引入各种类文件。
比如有一个类文件HelloWord.class.php:

 class HelloWord{       public function doPrint(){       echo "helloWord";     }}

如果要调用HelloWord这个类的话则必须引入HelloWord.class.php,如果要调用很多类似的类则需要引入各种文件,整个代码的可读性就会很差,使用__autoload则可以有效解决这个问题

<?php     function __autoload($class){      $file = $class.".class.php";      if(is_file($file)){      require($file);     }     }     $class = new HelloWord(); $class->doPrint();   ?> 

上述代码很好理解PHP在实例化HelloWord这个类的时候回去先访问__autoload()这个方法并更具方法中的规则引入类文件

spl_autoload_register方法也是实现自动加载类文件的功能,不过他是注册给定的函数作为 __autoload 的实现
上述代码可以改为:

  <?php     function autoload($class){    $file = $class.".class.php";    if(is_file($file)){        require($file);    }}spl_autoload_register("autoload");$class = new HelloWord();$class->doPrint();

同样也可以实现自动加载的方法,spl_autoload_register也可以将类中的静态方法作为自动加载方法调用:spl_autoload_register(array('$className','$function'));

0 0