84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
class 类名{function__autoload($ClassName){$path=$ClassName.'.php';if(file_exists($path)){//判断文件是否存在require_once($path);//导入该文件}else{该文件不存在}}}
外部有一个test.php,我很好奇,我对了几遍,并看不到$ClassName =test 意思的语句 那他是怎么能把text.php导入进来的?
也就是你new test类名的时候,会执行这个__autoload方法,会把你new后面这个类名test当作参数传进这个方法里面
你要在这个类里面引用一个不存在的类的时候,写了__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文件,可以成功的输出值
也就是你new test类名的时候,会执行这个__autoload方法,会把你new后面这个类名test当作参数传进这个方法里面
你要在这个类里面引用一个不存在的类的时候,写了__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文件,可以成功的输出值