> 백엔드 개발 > PHP 튜토리얼 > 新写的类工厂函数

新写的类工厂函数

WBOY
풀어 주다: 2016-06-13 09:59:45
원래의
863명이 탐색했습니다.

新写的类工厂函数,请指教

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php /**  * 中文名称     类创建工厂 *  * 功能描述     实例化类,支持类构造函数多参数功能 *   * @author        魔力一生缘 [email&#160;protected] * @package        Lib */ class ClsFactory {    /**     * 创建类对象     *     * @param string    $classInfo        类信息     * @param mixed        $param1            类构造函数参数1,可选     * @param mixed        $param2            类构造函数参数2,可选     * ……     *      * @return object | FALSE     */    public static function create() {        // 从参数中获取类信息和类构造函数参数        $args = func_get_args();        if (count($args) <= 0) {            return FALSE;        }                // 类信息,此处类信息格式为model::Test,对应/model/Test.php文件中的Test类        $classInfo = array_shift($args);        $params       = $args;                // 类创建函数实体        self::_createMain($classInfo, $params);    }    /**     * 创建类主体函数     *     * @param array        $classInfo        类信息     * @param array        $params            类构造函数参数     *      * @return object | FALSE     */    private static function _createMain($classInfo, $params) {        $className = array_pop($classInfo);        $classPath = SERVER_ROOT . implode('/', $classInfo). '/' . $className . '.php';        if (!class_exists($className)) {            include_once $classPath;        }        if (!class_exists($className)) {            return FALSE;        }                // 通过反射创建类的映射        $ref = new ReflectionClass($className);        if ($ref->hasMethod('__construct') && !empty($params)) {            $obj = $ref->newInstanceArgs($params);          } else {              $obj = $ref->newInstance();          }                return $obj;    }}?>
로그인 후 복사


------解决方案--------------------
这个做什么用?看起来只是起了一个autoloader的作用?
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿