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

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

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

提问者黄立文

添加回答

2回答
听装雪碧
1星期前听装雪碧

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

已被提问者采纳赞同00个回复
听装雪碧
1星期前听装雪碧

你要在这个类里面引用一个不存在的类的时候,写了__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文件,可以成功的输出值


赞同00个回复