您的当前位置:首页正文

php __autoload namespace 解释一下

来源:花图问答

以前:

<?php
class a{
    function haha(){
        echo 'haha';
    }
}

上面code/a.php

<?php
    require('code/a.php');
    $classA = new a();
    $classA->haha();

上面index.php

我是图.png

这样意思如果有一大推类加载。是不是变成这样

require('code/a.php');
require('code/b.php');
require('code/c.php');
require('code/d.php');
require('code/e.php');
.......

总之这样不是办法。
然后就用上了__autoload 和 namespace

<?php
namespace code;
class a{
    function haha(){
        echo 'haha';
    }
}
<?php
use code\a; 
function __autoload($className){
    $className = str_replace('\\', '/', $className);
    require($className . '.php');
}
    
    $classA = new a();
    $classA->haha();
    

额~很多框架里面都是这样写的。
之后
namespace code\xxx;
use code\xxx\a;

是图.jpg

然后,写多几次就会了。