2、案例1目录名称
/data/api/study/3、干系知识点
文件名8、类加载器.php 其源码如下<?php
/
Copyright(C) Iamasb
@project : 3、workerman干系知识点
@explain : 类加载器
@filename : 8、类加载器.php
@author : Iamasb
/
class Load
{
/
文件格式常量
/
/
处理类文件加载的核心方法
@param $className
@return bool
/
public static function toDo($className)
{
echo $className,PHP_EOL;
exit;
}
}
spl_autoload_register('Load::toDo');
// 测试代码
$test = new TestClass();
实行结果总结从这个例子中,可以看出,当注册类加载器后,在当前文件中实例化任何类时,都会触发类加载器的方法。并获取类名。也便是说,如果我们知道类所在的目录位置,那么我们就可以\"大众包含\公众此类的代码信息,到当前的实行环境里面了
3、案例2新增类文件TestClass.php,其源码如下:<?php
/
Copyright(C) Iamasb
@project : 3、workerman干系知识点
@explain : 类加载器,被加载的测试类
@filename : TestClass.php
@author : Iamasb
/
class TestClass
{
public function func()
{
echo 'hello world',PHP_EOL;
}
}
修正类加载器的回调方法public static function toDo($className)
{
// echo $className,PHP_EOL;
// exit;
$file = __DIR__.DIRECTORY_SEPARATOR.$className.self::PREFIX;
if (!file_exists($file)) {
die($className.\公众 is not exits.\"大众);
}
if (!class_exists($className,false)) {
include_once $file;
}
return true;
}
再修正测试代码$test = new TestClass();
$test->func();
再次实行