PHP 命名空间对auto_loader 的使用变化

  • PHP 命名空间和auto_loader 的使用变化

    基本上 spl_autoload_register() 已经代替了 __autoload() 所以就不谈 __autoload 了。

    ###################### 讨论如下代码:

    class CAutoloader {
        public function __construct() {
            spl_autoload_register(array($this, 'loader'));
        }
        private function loader($className) {
            echo '加载: '. $className;
            echo '<br/>';
            include $className . '.php';
        }
    }

    $autoloader = new CAutoloader();

    echo TheA::WhoAmI(); //由于没有显性指定命名空间所以 MyLoader::Load 根本不知道如何加载该API

    ###################### 怎么办呢?思考。

    如果MyLoader 隶属于某个命名空间呢?


    namespace lib1;

    class CAutoloader {
        public function __construct() {
            spl_autoload_register(array($this, 'loader'));
        }
        private function loader($className) {
            echo '加载: '. $className;
            echo '<br/>';
            $incluepath= str_replace('\\', '/', $className);
            include $incluepath . '.php';
        }
    }

    $autoloader = new CAutoloader();

    echo TheA::WhoAmI(); /

    如果成功

    echo '<br/>';

    文章“PHP 命名空间对auto_loader 的使用变化”由大口罩的BLOG提供,转载请注明出处 http://blog.cancanyou.com/

回复位置:
主贴
访客名称(不可修改):
联系Email(可选,如果有必要我会根据此Email给您回复):
回复内容描述(必选,1000字符以内):
提示:某些回复内容可能稍后通过审核后才会被显示
  • ADs
Copyright 2012 cancanyou.com 大口罩的生活领地,欢迎来访,管理员“口罩下的笑”交流Email: meetcancanyou@yahoo.com
京ICP备13030527号-2