PHP类文件自动加载

<?php

//例子1
//__autoload这个函数不常用
function __autoload($className)//2.通过这个函数把需要的类名传递进去
{
      require $className . ".php"; //3.把类名传递进来以后与后面的.php做拼接.来实现类文件的引入
}

$user = new User();//1.当实例化User类的时候,发现没有这个类.这是就会函数把User这个名字传到__autoload函数中去.
var_dump($user);


//例子2
//spl_autoload_register 这个函数比较常用
function spl_autoload_register(function($className){  
      require $className . ".php"; 
}); 
$user = new User(); 
var_dump($user);


//例子3
function test($className){
    require $className . ".php";
}
spl_autoload_register('test');

$user = new User();
var_dump($user);


//例子4
class Momo
{
    function autoload($className)
    {
        require $className . ".php";
    }
}
spl_autoload_register([new Momo, 'autoload']);

$user = new User();
var_dump($user);


//例子5
spl_autoload_register(function($className){
//把传入的models\Imooc中的反斜线转换成正斜线/这样就拼接出了文件名和文件路径
include str_replace("\\", "/", $className.".php");
});

$imooc = new models\Imooc();
var_dump($imooc);

 

posted @ 2017-12-03 08:49  enjie  阅读(106)  评论(0编辑  收藏  举报