Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung für das Problem mehrerer Konstruktoren in PHP

Lösung für das Problem mehrerer Konstruktoren in PHP

黄舟
黄舟Original
2017-07-02 09:43:292746Durchsuche

Um einen Konstruktor zu implementieren, sind zwei Variablen und der andere Konstruktor ein Array .
Zum Beispiel:

public function construct($id, $dname)
public function construct($device=array())

Ich habe es nur im Internet gefunden. Es wird durch Beurteilen der Anzahl der Parameter über func_num_args implementiert.

Es ist unmöglich, zwei Methodenfunktionen mit demselben Namen gleichzeitig in einer Datei zu haben
2. Wenn sie sich in verschiedenen Dateien befinden, können Sie den Namespace um den gleichen Funktionsaufruf zu implementieren (PHP-Version muss 5.3.0 oder höher sein)Ihr Urteil hat also keine wirkliche Bedeutung

PHP kann nicht überladen werden, ändern Sie die Parameter in ein Array und machen Sie den Unterschied darin die Funktion

Ich Möchten Sie sehen, wie sie im Quellcode und in der Vererbung nebeneinander existieren?

gettype – Ermittelt den Typ der Variablen


construct ist nicht der Konstruktor der PHP-Klasse
construct ist!

Obwohl PHP das Überladen nicht unterstützt, wurde auf dem Poster nicht gesagt, dass es sich um eine Methode mit demselben Namen in einer Klasse handelt

Beurteilen Sie den Parametertyp im Konstruktorkonstruktor und nehmen Sie dann verschiedene Zweige Das ist es. Wenn Sie das Überladen nicht nativ unterstützen, simulieren Sie es einfach ~

php unterstützt kein Funktionsüberladen wie C. Verwenden Sie, wie Sie sagten, die Funktion func_num_arg und beurteilen Sie dann die zu verzweigenden Parameter Initialisierung

Sie können die Anzahl und Art der Parameter im Konstrukt bestimmen.

Das obige ist der detaillierte Inhalt vonLösung für das Problem mehrerer Konstruktoren in PHP. 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