首页 >PHP讨论组 >独孤九贱 类的自动加载__autoload()的小疑问

独孤九贱 类的自动加载__autoload()的小疑问独孤九贱 类的自动加载__autoload()的小疑问

class 类名{
    function__autoload($ClassName){
    $path=$ClassName.'.php';
    if(file_exists($path)){//判断文件是否存在
        require_once($path);//导入该文件
    }
    else{该文件不存在}
    }
    }

外部有一个test.php,我很好奇,我对了几遍,并看不到$ClassName =test 意思的语句 那他是怎么能把text.php导入进来的?

 
2
 
+1
-1
 
分享
全部回复 (2)我来回答
    听装雪碧
    2楼
    听装雪碧 · 4个月前

    也就是你new test类名的时候,会执行这个__autoload方法,会把你new后面这个类名test当作参数传进这个方法里面

      赞+0添加回复

    听装雪碧
    1楼
    听装雪碧 · 4个月前

    你要在这个类里面引用一个不存在的类的时候,写了__autoload方法后,他会自动判断这个类文件是否存在,存在就会执行

    require_once($path)引用这个类文件

    你可以在你这个文件加上下面的代码

     echo (new Autoload1())->god();

     echo (new Autoload1())->name;


    然后test.php文件中写上

        class Test

        {

            public $name = '我是Test类文件里面的属性name';

            public function god(){

                return '我是Test类文件里面的方法god()';

            }

        }

    就可以看到自动的引入了这个Test文件,可以成功的输出值


      赞+0添加回复

    首页上一页1下一页尾页