美文网首页
php __autoload namespace 解释一下

php __autoload namespace 解释一下

作者: 黄123 | 来源:发表于2016-12-28 00:53 被阅读10次

好久没写东西,人懒了,为了对抗懒惰的基因,每周都写一些东西吧。
现在介绍 php 的 __autoload和namespace的用法。我是用了自动加载的。
官网的介绍是 __autoload — 尝试加载未定义的类http://php.net/manual/zh/function.autoload.php
namespace 的官网介绍
http://php.net/manual-lookup.php?pattern=namespace&scope=quickref

以前:

<?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

然后,写多几次就会了。

相关文章

网友评论

      本文标题:php __autoload namespace 解释一下

      本文链接:https://www.haomeiwen.com/subject/iyaevttx.html