您的位置:首页 > 编程语言 > PHP开发

PHP自动加载机制[1]---__autoload操作详解

2017-11-03 10:00 851 查看
PHP自动加载有两种,一种是__autoload,另外一种是spl_autoload_registed(),以下将对这两种加载机制进行详细讲述。

自动加载的原理

自动加载就是在我们new(实例化)一个class(类)的时候,PHP系统如果找不到你这个类,就会去自动调用本文件中的__autoload($class_name)方法,我们new的这个class_name 就成为这个方法的参数。所以我们就可以在这个方法中根据我们需要new class_name的各种判断和划分就去require对应的路径类文件,从而实现自动加载。

自动加载实例

1、创建类DB.php
<?php
/**
* 测试类
*/
class DB
{

function __construct()
{
echo "调用DB<br>";
}

static function test()
{
echo "静态方法";
}
}

?>
创建autoload.php(使用类)

<?php
header("Content-type:text/html;charset=utf-8"); //设置字符集
/**
* autoload自动加载使用
*/
function __autoload($classname)
{
require $classname.".php";
}
$obj = new DB();
$test = DB::test();  //支持静态方法直接调用
?>
2、结果展示
使用__autoload



若注释__autoload方法,则无法引入外部类



注意

一个项目中仅能有一个这样的 __autoload() 函数,因为 PHP 不允许函数重名,也就是说你不能声明2个__autoload()函数文件,否则会报致命错误
下节将对apl_autoload_register()进行讲解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: