Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen PHP-Klassen und -Funktionen

Der Unterschied zwischen PHP-Klassen und -Funktionen

(*-*)浩
(*-*)浩Original
2019-09-23 16:04:383787Durchsuche

Objektorientierte Programmierung (OOP) hat eine ganze Reihe von Funktionen eingeführt, die die Programmierung komplexer machen. Kapselung, Vererbung und Polymorphismus sind die drei Elemente von OOP, die in Funktionen in Prozeduren nicht zu finden sind.

Der Unterschied zwischen PHP-Klassen und -Funktionen

ist verkörpert in:

1. Kapselung: Klasse/Schnittstelle/öffentlich/geschützt/privat

2. Vererbung: erweitert/implementiert (empfohlenes Lernen: PHP-Programmierung vom Anfänger bis zum Experten)

3. Polymorphismus: Methodenumschreibung/Methodenüberladung

Neu Neue Variablenbereiche haben wurde zu Klassen und Schnittstellen hinzugefügt, d. h. die Codeblöcke in Klassen und Schnittstellen haben einen Umfang, den Funktionen nicht haben.

In diesem Bereich können Sie Variablen und Funktionen als Mitglieder von Klassen und Schnittstellen definieren und die Verwendung von öffentlichen/geschützten/privaten Schlüsselwörtern unterstützen, um den Zugriff auf diese Mitglieder zu steuern. Öffentlich bedeutet beispielsweise, dass der externe Zugriff erfolgt erlaubt und geschützt bedeutet, dass der Zugriff von außen für die Klasse und ihre Unterklassen erlaubt ist, und privat bedeutet, dass der Zugriff nur innerhalb der Klasse erlaubt ist.

Eine Klasse muss mit dem Schlüsselwort class deklariert werden. Objekte können instanziiert werden und Klassen können in der objektorientierten Programmierung vererbt werden haben keine Attribute und werden im Allgemeinen prozessorientiert verwendet, um ein bestimmtes Problem zu lösen.

Und OOP führt auch die polymorphen Merkmale des Methodenumschreibens und des Methodenüberladens ein, nämlich:

Methodenumschreiben: Die Parameterliste ist dieselbe, der Methodenkörper Anders.

Methodenüberladung: Die Parameterliste ist unterschiedlich und der Methodenkörper ist unterschiedlich.

Das Überschreiben von Methoden basiert auf der Vererbung, was bedeutet, dass die Methode der Unterklasse die Methode der übergeordneten Klasse überschreibt , und der Methodenname und die Parameterliste müssen identisch sein

Methodenüberladung beruht nicht auf Vererbung. Es handelt sich um zwei oder mehr Methoden mit demselben Namen in derselben Klasse und unterschiedlichen Parameterlisten 🎜>

Es ist zu beachten, dass nur geerbte und überschriebene Methoden Zugriffsrechte beibehalten oder erweitert, aber nicht reduziert werden können.

Zum Beispiel ist es möglich, die geschützte Methode einer übergeordneten Klasse zu überladen öffentlich in einer Unterklasse.

In PHP, da mehrere A-Methoden mit demselben Namen vorhanden sind, wird Methodenüberladung wie in C++/Java nicht unterstützt.

Aber PHP bietet Magie Methoden (__call, __callStatic) zur indirekten Implementierung der Methodenüberladung.

Das Umschreiben von Methoden in PHP erfordert nicht dieselben Parameter

PHP unterstützt keine Mehrfachvererbung (Erben mehrerer übergeordneter Klassen), aber es kann mehrere Schnittstellen implementieren und auch Merkmalsfunktionen verwenden, um indirekt die Mehrfachvererbung zu unterstützen.

Einige Leute glauben, dass die Vererbung die Kopplung zwischen Unterklassen und übergeordneten Klassen erhöht, und lehnen daher die Vererbung ab Da Go die Vererbung nicht direkt unterstützt, sondern die Vererbung durch Komposition ersetzt, handelt es sich im Wesentlichen um eine Kombination von Ideen, mit denen eine Entkopplung erreicht werden kann geerbt.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen PHP-Klassen und -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

In Verbindung stehende Artikel

Mehr sehen