中国设计联盟
联网
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
网站建设 域名注册 网站建设 虚拟主机 广州网站设计 域名注册 广州网站建设 上海网站建设 虚拟主机 广州网页设计  虚拟主机 域名注册 acg王国 ACG玩家
求创科技
网站建设
中国福网
中国互联
艺魂宝库网
时代网
招聘求职
中资源
当前位置:网络学院首页 >> 编程开发 >> php >> PHP5自动加载实现方法及代码

PHP5自动加载实现方法及代码 (2)

来源:中国设计秀    作者:    点击:75     加入收藏    发表评论
0
顶一下
 
     * 注册类包含路径,类名称,扩展名称
     * 
     * @param string  $container_name 容器名称,路径容器名,类容器名和文件扩展容器名
     * @param mixed 可变参数列表
     * @param........
     * 
     */
    public function register() {
        
        try {
             $NumerOfArgs = func_num_args();
             $container_name = func_get_arg(0);
            if (is_string( $container_name) && in_array( $container_name,  $this->containers)) {
                for ( $i = 1;  $i <  $NumerOfArgs;  $i++) {
                     $arg = func_get_arg( $i);
                    if (is_array( $arg)) {               foreach ( $arg as  $registerobj) {
                            if (is_string( $registerobj) && ! in_array( $registerobj, array_values( $this-> $container_name))) {
                                array_push( $this-> $container_name,  $registerobj);
                            }
                        }
                    } else {
                        if (is_string( $arg)) {
                            array_push( $this-> $container_name,  $arg);
                        }
                    }
                }
            } else {
                 $message = ’Unsupported register container or first argument is not a string and must be one of includePaths,classNames,extentionNames.’;
                throw new Exception( $message);         }
        } catch (Exception  $e) {

             $message =  $e->getMessage();
             $msg =  ’<pre style="font-family:verdana;font-size:12px;color:red;">’ .  $message . ’</pre>’;
            echo  $msg; 
            
             $message =  $e->getTraceAsString();
             $msg =  ’<pre style="font-family:verdana;font-size:12px;color:red;">’ .  $message . ’</pre>’;
            echo  $msg;
        }
    }

    /**
     * 自动加载函数
     */
    public function __autoload() {
                
         $list = array();    
                    
        foreach( $this->includePaths as  $path){
            foreach( $this->classNames as  $class){
                foreach( $this->extensionNames as  $ext){
                     $filename = strtolower( $path) . DIRECTORY_SEPARATOR . ucfirst( $class) . strtolower( $ext);
                    array_push( $list,  $filename);
                    if(file_exists( $filename)){                require_once  $filename;
                    }
                }
            }
        }
        
        return  $list;
    }
    
    
}

[1] [2] [3]
2007-08-13 16:36:00    出处:
Google
热点文章/相关文章
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口