Heim >Backend-Entwicklung >PHP-Tutorial >PHP: Nein, das ist nicht möglich
Sie können diesem Titel „noch“ hinzufügen! Manchmal sind die Dinge so, wie sie sind, einfach weil niemand weiß, wie man es besser machen kann.
Das bedeutet jedoch nicht, dass alles eine gute Idee ist.
Das Folgende können Sie einfach nicht tun:
class Child extends Parent1, Parent2 {}
Viele Entwickler würden jedoch denken, dass es bessere Ansätze gibt, wie etwa die Verwendung von Schnittstellen, um Klassen zu zwingen, bestimmte Verhaltensweisen zu implementieren.
Beachten Sie, dass Sie möglicherweise immer noch eine Art Mehrfachvererbung auf diese Schnittstellen anwenden (sofern das in Ihrem Fall wirklich Sinn macht):
interface A {} interface B {} interface C extends A, B {}
Allerdings ist das für mich nicht das beste Argument gegen eine Mehrfachvererbung. Viele Programmiersprachen legen den Schwerpunkt auf Einfachheit und Lesbarkeit statt auf Komplexität.
Die Einführung der Mehrfachvererbung könnte zu vielen Missbräuchen führen, ganz zu schweigen vom Diamonds-Problem, das für Hochsprachen wie PHP problematisch wäre.
Am besten ist es, wenn Sie unnötige Komplexität vermeiden können.
Viele Programmiersprachen bieten integrierte Tools zum Ausführen mehrerer Threads gleichzeitig (z. B. Java, C++).
Pthreads hat versucht, Multithreading in PHP einzuführen, aber Joe Watkins, der Schöpfer von pthreads und Parallel, gab im Februar 2019 Folgendes bekannt:
pthreads werden nach PHP 7.4 aufgrund von Architekturfehlern nicht mehr gepflegt.
Quelle: PHP-Dokumentation – phtreads
Wenn Sie weiter graben möchten, können Sie sich Parallel ansehen, das von Go-Parallelität inspiriert ist.
Parallelität ist zwar ziemlich cool, aber brauchen Sie in Ihrem Fall wirklich eine solche Komplexität?
Wenn Sie einen integrierten Mechanismus für die asynchrone Verarbeitung benötigen, ist dies jetzt mit Fibers (seit PHP 8.1) möglich.
Mit Fasern können Sie unterbrechbare Funktionen schreiben.
Obwohl Fasern ziemlich cool sind, brauchen Sie in Ihrem Fall wirklich eine solche Komplexität?
Die Verwendung von Lösungen von Drittanbietern wie ReactPHP oder Swoole könnte eine bessere Wahl sein, insbesondere wenn Sie nur eine Ereignisschleife benötigen.
Besser noch: Sie können einen Warteschlangenmechanismus erstellen, der Nachrichten verarbeiten und fehlgeschlagene Jobs wiederholen kann.
Der HTTP-Client der Symfony-Komponente unterstützt auch verschiedene asynchrone Vorgänge (z. B. gleichzeitige asynchrone gestreamte und gemultiplexte Anforderungen/Antworten).
PHP ist eine interpretierte Sprache, die mit intensiven Vorgängen und Systemen, die eine geringe Latenz und hohe Vorhersagbarkeit erfordern, nicht kompatibel ist.
Das stimmt zwar, aber warum sollten Sie PHP für Hochfrequenzhandel, Streaming, Online-Spiele oder die Überwachung von Maschinen und Prozessen auf hoher Ebene verwenden?
PHP ist für das Web und viele andere kreative Anwendungen gedacht, die Sie vielleicht kennen.
Ich hoffe, dass es seine Einfachheit behält, da es definitiv ein Feature ist.
Das obige ist der detaillierte Inhalt vonPHP: Nein, das ist nicht möglich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!