"__autoload" 进一步理解

上次说过 "__autoload" 的用法--------自动加载对象所需的类文件

原本我理解为当使用 new 产生一个对象时如果没有手动加载这个类的话,将使用 __autoload方法查找并加载此类.后面发现如果A类是一个抽象类,B类继承于A类. 这个时候如果没有手动加载A类. 那么__autoload方法也会自动加载这个抽象类A.

代码如下
  1. // include/class_A.php
  2. class A
  3. {
  4.     var $asd = '<br />father<br />';
  5.     public function __construct(){
  6.  
  7.     }
  8. }
  9.  
  10. // include/class_B.php
  11. class B extends A
  12. {
  13.     public function __construct(){
  14.         echo $this->asd;
  15.     }
  16. }
  17.  
  18. //index.php
  19. function __autoload($class){
  20.     require_once(ROOT_PATH.'include/class_'.$class.'.php');
  21. }
  22.  
  23. $a = new B();

有节省手动加载类的麻烦事了.


Leave a Reply