通常我们PHP在使用另一个PHP文件函数或方法的时候,需要通过require_once
对需要使用的文件进行加载,那么我们写一个autoload.php
实现对同一类型的文件自动加载。
目录结构如下↓
test (工程名称)
/app
/QueryPhone.php
/index.php
不使用自动加载时:
QueryPhone.php
<?php
class QueryPhone {
public static function query() {
echo 'query phone';
}
}
?>
index.php
<?php
require_once 'app/QueryPhone.php';
QueryPhone::query();
?>
为了使用QueryPhone中的函数,需要在文件头部通过require_once引入需要的文件。如果依赖多个文件,则要引入多个。
使用自动加载:
假设目录结构如下↓
test (工程名称)
/app
/QueryPhone.php
/index.php
/autoload.php (为了使用自动加载,新追加的文件)
QueryPhone.php(追加了命名空间)
<?php
namespace app;
class QueryPhone {
public static function query() {
echo 'query phone';
}
}
?>
index.php(只引入autoload.php就可以了,以后即使再追加其他的依赖,仅此一个也够了)
<?php
require_once 'autoload.php';
app\QueryPhone::query();
?>
autoload.php
<?php
class autoload {
public static function load($className) {
$fileName = sprintf('%s.php', str_replace('\\', '/', $className));
if (is_file($fileName)) {
require_once $fileName;
}
}
}
spl_autoload_register(['autoload', 'load']);
?>