自动加载器
- 为了实现自动加载,应该遵守一些规定
1.1 一个文件只有一个类
1.2 这个类名和文件名必须一致
1.3 这个类的命名空间,必须映射到类文件所在的路径
1.4 spl_autoload_register(function($class){}),自动加载注册,当实例化一个类时,或者静态访问一个类时,当前文件没有该类时,则会调用该自动加载器,根据类名去加载,前提满足之前的三个条件,才可实现自动加载;
其他
- NAMESPACE:当前命名空间名
- call_user_func():回调,格式:类名,方法名
- use…as…:默认使用完全限定名称启用别名
- file_exists:判断文件是否存在
案例源码
<?php
namespace zuoye0816;
use function PHPSTORM_META\sql_injection_subst;
spl_autoload_register(function($class){
require $class.'.php';
});
use test\control\test1;
use test\control\test2;
use test\control\test3;
$testnew1 = new test1;
$testnew2 = new test2;
$testnew3 = new test3;
echo $testnew1->test1().'<hr>';
echo $testnew2->test2().'<hr>';
echo $testnew3->test3().'<hr>';
echo __DIR__;
类文件
案例结果