Heim Backend-Entwicklung PHP-Tutorial 新写的类工厂函数

新写的类工厂函数

Jun 13, 2016 pm 01:51 PM
param return

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

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php /** 
 * 中文名称     类创建工厂
 * 
 * 功能描述     实例化类,支持类构造函数多参数功能
 *  
 * @author        魔力一生缘 moliyishengyuan@126.com
 * @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;
    }
}
?>

Nach dem Login kopieren


------解决方案--------------------
这个做什么用?看起来只是起了一个autoloader的作用?
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Detaillierte Erläuterung der Verwendung von Return in der C-Sprache Detaillierte Erläuterung der Verwendung von Return in der C-Sprache Oct 07, 2023 am 10:58 AM

Die Verwendung von return in der C-Sprache ist: 1. Für Funktionen, deren Rückgabewerttyp ungültig ist, können Sie die Rückgabeanweisung verwenden, um die Ausführung der Funktion vorzeitig zu beenden. 2. Für Funktionen, deren Rückgabewerttyp nicht ungültig ist, ist die Funktion von Die Return-Anweisung dient dazu, die Ausführung der Funktion zu beenden. 3. Beenden Sie die Ausführung der Funktion vorzeitig wenn die Funktion keinen Wert zurückgibt.

Wie ist die Ausführungsreihenfolge von Return- und Final-Anweisungen in Java? Wie ist die Ausführungsreihenfolge von Return- und Final-Anweisungen in Java? Apr 25, 2023 pm 07:55 PM

Quellcode: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}# Ausgabe Die Ausgabe des obigen Codes kann einfach zu dem Schluss kommen: return wird ausgeführt, bevor wir uns schließlich ansehen, was auf der Bytecode-Ebene passiert. Im Folgenden wird ein Teil des Bytecodes der Methode case1 abgefangen und mit dem Quellcode verglichen, um die Bedeutung jeder Anweisung darin zu kommentieren

Wie verwendet Vue3 den Setup-Syntaxzucker, um das Schreiben von Return zu verweigern? Wie verwendet Vue3 den Setup-Syntaxzucker, um das Schreiben von Return zu verweigern? May 12, 2023 pm 06:34 PM

Vue3.2-Setup-Syntaxzucker ist ein Syntaxzucker zur Kompilierungszeit, der die kombinierte API in einer einzelnen Dateikomponente (SFC) verwendet, um das umständliche Setup in Vue3.0 zu lösen. Die durch den Import eingeführten deklarierten Variablen, Funktionen und Inhalte werden bereitgestellt Rückkehr, damit sie in Vue3.0 verwendet werden können. 1. Es besteht keine Notwendigkeit, deklarierte Variablen, Funktionen und Inhalte zurückzugeben, die durch Import während der Verwendung eingeführt wurden }from'./utils'//variable constmsg='Hello !'//function func

Verwenden Sie das Schlüsselwort „return' in JavaScript Verwenden Sie das Schlüsselwort „return' in JavaScript Feb 18, 2024 pm 12:45 PM

Für die Verwendung von „return“ in JavaScript sind bestimmte Codebeispiele erforderlich. In JavaScript wird die „return“-Anweisung verwendet, um den von einer Funktion zurückgegebenen Wert anzugeben. Es kann nicht nur dazu verwendet werden, die Ausführung einer Funktion zu beenden, sondern auch einen Wert an die Stelle zurückzugeben, an der die Funktion aufgerufen wurde. Die Return-Anweisung hat die folgenden allgemeinen Verwendungszwecke: Einen Wert zurückgeben Die Return-Anweisung kann verwendet werden, um einen Wert an die Stelle zurückzugeben, an der die Funktion aufgerufen wird. Hier ist ein einfaches Beispiel: functionadd(a,b){

Detaillierte Erläuterung der Rückgabewerte und Rückgabeanweisungen von JavaScript-Funktionen Detaillierte Erläuterung der Rückgabewerte und Rückgabeanweisungen von JavaScript-Funktionen Aug 04, 2022 am 09:46 AM

JavaScript-Funktionen stellen zwei Schnittstellen zur Interaktion mit der Außenwelt bereit. Die Parameter dienen als Eingang zum Empfang externer Informationen; der Rückgabewert dient als Ausgang für die Rückmeldung der Operationsergebnisse an die Außenwelt. Der folgende Artikel wird Ihnen helfen, den Rückgabewert der JavaScript-Funktion zu verstehen und die Verwendung der Rückgabeanweisung kurz zu analysieren. Ich hoffe, er wird Ihnen hilfreich sein!

So verwenden Sie den Rückgabewert in Python So verwenden Sie den Rückgabewert in Python Oct 07, 2023 am 11:10 AM

Bei der Rückgabe des Python-Rückgabewerts wird die Ausführung sofort gestoppt, wenn die Funktion die Rückgabeanweisung ausführt, und der angegebene Wert wird an die Stelle zurückgegeben, an der die Funktion aufgerufen wurde. Detaillierte Verwendung: 1. Einen einzelnen Wert zurückgeben; 2. Einen Nullwert zurückgeben; 4. Die Ausführung der Funktion vorzeitig beenden;

So verwenden Sie die Return-Anweisung in JavaScript So verwenden Sie die Return-Anweisung in JavaScript Feb 26, 2024 am 09:21 AM

Für die Verwendung von return in JavaScript sind bestimmte Codebeispiele erforderlich. In JavaScript ist return ein sehr wichtiges Schlüsselwort. Es wird normalerweise verwendet, um einen Wert in einer Funktion zurückzugeben oder die Ausführung einer Funktion zu beenden. Die Return-Anweisung wird verwendet, um einen Wert an den Aufrufer der Funktion zurückzugeben und die Ausführung der Funktion zu beenden. Die return-Anweisung kann überall in einer Funktion verwendet werden und jeden JavaScript-Datentyp zurückgeben, einschließlich Zahlen, Zeichenfolgen, booleschen Werten,

Wird in Java nach der Ausführung der Return-Anweisung in einer Methode der Final-Block ausgeführt? Wird in Java nach der Ausführung der Return-Anweisung in einer Methode der Final-Block ausgeführt? Sep 17, 2023 pm 03:05 PM

Ja, der „finally“-Block wird auch nach der return-Anweisung in der Methode ausgeführt. In Java wird der „finally“-Block unabhängig davon ausgeführt, ob eine Ausnahme auftritt. Wenn wir die Methode System.exit() explizit im Final-Block aufrufen, wird sie nur nicht ausgeführt. Es gibt seltene Situationen, in denen final nicht ausgeführt wird, wie z. B. JVM-Absturz, Stromausfall, Software-Absturz usw. Außer in diesen Fällen wird der „finally“-Block immer ausgeführt. Beispiel publicclassFinallyBlockAfterReturnTest{ publicstaticvoidmain(St

See all articles