?【前言】
? ?本文记录下PHP自动加载的原理和相关应用
?
【主体】
应用场景:
? ? ? ? ? 实例化某个类时,如MySQL,需要先require()。如果类比较多,目录也就比较多,require引入文件时将显得很麻烦。这时需要一个自动化的解决方案----自动加载。
应用案例:
? ? ? ? ?thinkPHP里经常遇到类名与文件名一致,这便用到了自动加载功能。
代码解析:
class="php" name="code"><?php function myload($class){//这里$class为实例化的类名 echo $class."?"; } //注册一个函数为自动触发函数--调用/实例化一个不存在的类时便会自动触发 spl_autoload_register('myload'); new mySql(); ?>
解析:new mySql()会在本页面查找mysql类,不存在时便会触发sql_autoload_register()里注册的自动触发函数
被注册函数的形参,上例为$class,会接受实例化的类名。
<?php function myload($class){ include './'.$class.'.class.php';//这里便会引入(自动加载)mySql.class.php文件 } //注册一个函数为自动触发函数--调用/实例化一个不存在的类时便会自动触发 spl_autoload_register('myload'); new mySql(); ?>
mySql.class.php:
<?php class mySql{ public function __construct(){ echo "789"; } } ?>
?
?
【总结】
? ? ? ?简单理解所谓的自动加载并不是真的自动加载,而是利用spl_autoload_register()注册自动触发函数,利用函数里面设定的include内容来加载想要加载的文件。并且new里面的一个类名。
?
?
?
?
?
?