Funktionsüberladung und -überschreibung (auch Umschreiben genannt) sind OOP-Funktionen (objektorientiert) in PHP. Bei der Funktionsüberladung können mehrere Funktionen denselben Methodennamen, aber eine unterschiedliche Anzahl oder Art von Parametern haben. Im Falle einer Funktionsüberschreibung haben jedoch mehrere Funktionen denselben Methodennamen und dieselbe Anzahl von Parametern.
Funktionsüberladung: Funktionsüberladung enthält denselben Funktionsnamen, der je nach Anzahl und Art der Argumente unterschiedliche Aufgaben ausführt.
Um beispielsweise die Fläche einer Form anhand des Radius zu ermitteln, sollte bei Angabe von Höhe und Breite die Fläche des Kreises zurückgegeben werden, dann die rechteckige Fläche und andere Flächen gegeben. Wie bei anderen OOP-Sprachen kann das Überladen von Funktionen nicht durch native Methoden erfolgen.
In PHP erfolgt das Überladen von Funktionen mit Hilfe der magischen Methode __call(). Diese Funktion benötigt einen Funktionsnamen und Parameter.
Beispiel für Funktionsüberladung:
<?php // 说明:PHP程序说明函数。 // PHP中的重载 //创建一个类型为shape的类 class shape { // __call() 是一个魔术方法 //函数名和参数 function __call($name_of_function, $arguments) { // 它将匹配函数名 if($name_of_function == 'area') { switch (count($arguments)) { // 如果只有一个参数 //圆的面积 case 1: return 3.14 * $arguments[0]; // 如果有两个参数,则面积为矩形; case 2: return $arguments[0]*$arguments[1]; } } } } //声明Shape类型对象 $s = new Shape; echo($s->area(2)); echo "<br>"; // 调用矩形的area方法 echo ($s->area(4, 2)); ?>
Ausgabe:
6.28 8
Funktionsumschreibung: Funktionsumschreibung mit anderen OOPs Die Programmiersprache ist das gleiche. Beim Überschreiben von Funktionen sollten die übergeordnete Klasse und die untergeordnete Klasse denselben Funktionsnamen und dieselbe Anzahl von Parametern haben. Es wird verwendet, um die übergeordnete Methode in der untergeordneten Klasse zu ersetzen. Der Zweck des Überschreibens besteht darin, das Verhalten der Methode der übergeordneten Klasse zu ändern. Zwei Methoden mit demselben Namen und denselben Parametern werden als Overrides bezeichnet.
Beispiel für Funktionsabdeckung (Umschreiben):
<?php //PHP程序实现 //函数覆盖 //这是父类 class P { // 父类函数demo function demo() { echo "Parent"; } } // 这是子类 class C extends P { // 覆盖demo方法 function demo() { echo "<br>Child"; } } $p = new P; $c= new C; // 打印parent $p->demo(); // 打印child $c->demo(); ?>
Ausgabe:
Parent Child
In diesem Artikel geht es um Funktionsabdeckung und Funktionsüberladung in PHP Einführung, I Ich hoffe, es wird Freunden in Not helfen!
Das obige ist der detaillierte Inhalt vonWas sind Funktionsabdeckung und Funktionsüberladung in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!