美文网首页
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