比如:
文件列表:
index.php
C类文件
R类文件
===========================c类文件内容
class c{
   public function test(){
        $a=new R();
        $a->rtest();   
     }
}
===========================r类文件内容
class R{
   public function rtest(){
       echo 'ddddddd ';
     }
}======================index.php内容
include(R);include(C);
$cc=new C();
$cc->test();=========================================
运行正常,
这是为什么,是直接运行了魔术方法  __autoload()吗?
但是没有去定义这个函数?

解决方案 »

  1.   

    使用autoload的话就没有必要include(R);include(C);你现在使用的是include,为什么会出错呢?
      

  2.   

    因为有 include(R);include(C);
    所以所涉及的类都是已定义的了
    与 __autoload() 无关,况且也没有看到你对 __autoload() 的定义这样使用对系统运行上的性能上没有影响
    但可能是你自己把自己绕糊涂了
      

  3.   

    跟 __autoload() 有什么关系? 
    你不是   $a=new R(); 了吗? 那就当然能调用它的类方法了。        
      

  4.   

    哦哦哦!!!嘿嘿 绕 晕了晕了理解了 在index中include()的所需的类文件,也就相当是跟其它语言 在类中 import 执过一样 。上面的是看到一个框架中的代码,总是联想着 一些跟其它语言的执行流程  有点 绕了。