Heim  >  Artikel  >  Backend-Entwicklung  >  Analyse und Beispiele zur Überladung von PHP-Funktionen

Analyse und Beispiele zur Überladung von PHP-Funktionen

墨辰丷
墨辰丷Original
2018-05-16 13:40:181541Durchsuche

In diesem Artikel werden hauptsächlich PHP-Funktionsüberladungsanalysen und Beispiele vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Bei schwach typisierten Sprachen ist die Überladung von PHP-Funktionen nicht wie allgemeines OOP.

Da die Funktionsüberladung zwei Bedingungen erfüllen muss:

1. Die Anzahl der Funktionsparameter ist unterschiedlich.

2. Die Arten von Parametern sind unterschiedlich.

PHP kann diese beiden Punkte nicht erfüllen. Sie können der Funktion weitere Parameter hinzufügen, was der Übergabe einer zusätzlichen temporären Variablen entspricht. Schwache Typen sind nicht von Natur aus differenziert und können daher nicht durch diese implementiert werden.

Mit der folgenden Methode können Sie jedoch eine einfache Pseudoüberladung erreichen.

1. Standardparameter

Wie Sie oben sehen können, kann die entsprechende Funktion abgeschlossen werden, wenn ich den nicht erforderlichen Parametern in einer Funktion entsprechende Standardwerte hinzufüge.

function overloadFun($param1, $param2 = '1',$param3 = true)  
{  
    // do something   
}

2. Verwenden Sie die Funktionen func_get_args() und call_user_func_array(). Weitere Informationen finden Sie im PHP-Handbuch.

Verwenden Sie zum Aufrufen eine reguläre Funktion, um eine einheitliche Verwaltung zu ermöglichen.

function overloadFun()  
{  
    // overloadFun可以随便定义,但为了命名规范,建议宝贝为与此函数名一样,  
    // 后面的尾随数值为参数个数,以方便管理  
$name="overloadFun".func_num_args();   
  return call_user_func_array(array($this,$name), func_get_args());       
}  
  
function overloadFun0()  
{  
    // do something  
}  
  
function overloadFun1()  
{  
    // do something  
}  
  
function overloadFun2()  
{  
    // do something  
}

3. Verwenden Sie zur Verarbeitung die Funktion __call($name, $arg).

function __call($name, $args)  
{  
    if($name=='overloadFun')  
    {  
        switch(count($args))  
        {  
            case 0: $this->overloadFun0();break;  
            case 1: $this->overloadFun1($args[0]); break;  
            case 2: $this->overloadFun2($args[0], $args[1]); break;  
            default: //do something  
              break;  
        }  
    }  
}  
  
function overloadFun0()  
{  
    // do something  
}  
  
function overloadFun1()  
{  
    // do something  
}  
  
function overloadFun2()  
{  
    // do something  
}

Zusammenfassend lässt sich sagen, dass diese Methoden alle eine Pseudoüberladung erreichen können. Grundsätzlich können die zweite und die dritte Methode den Inhalt des anderen verarbeiten und beurteilen.

Der Artikel gibt nur die Methode an. Möglicherweise müssen viele Details behandelt werden, z. B. die Bestimmung von Ganzzahltypen, Kategorien usw.

Dem obigen Inhalt zufolge wird PHP jedoch möglicherweise nie wirklich überlastet, wodurch die Bedeutung der Sprache selbst verloren geht.

Verwandte Empfehlungen:

Was ist eine PHP-Funktionsüberladung? Detaillierte Erläuterung der Verwendung von Funktionsüberladung

Alternative Methode zur PHP-Funktionsüberladung_PHP-Tutorial

Alternative Methode zur PHP-Funktionsüberladung-Pseudo-Neuladen Laden Ausführliche Erklärung, Überlastung der detaillierten Erklärung_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonAnalyse und Beispiele zur Überladung von PHP-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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