Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind die Funktionen von PHP Oop? Einführung in die drei Hauptmerkmale des PHP-Oop-Denkens

Was sind die Funktionen von PHP Oop? Einführung in die drei Hauptmerkmale des PHP-Oop-Denkens

不言
不言Original
2018-07-25 14:10:307023Durchsuche

Die drei Hauptmerkmale des PHP-Op-Gedankens sind: Kapselung, Vererbung und Polymorphismus. Hier werde ich ausführlich über mein Verständnis des PHP-Op-Gedankens sprechen dachte und PHP opp dachte.
Kapselung

Bei der Kapselung werden die Eigenschaften und das Verhalten eines Objekts in einer unabhängigen Einheit zusammengefasst.
Das Kapseln einer Klasse erfordert zwei Schritte. Der zweite Schritt besteht darin, set und get zum Lesen und Zuweisen von Werten zu verwenden.
Der Vorteil besteht darin, dass die Implementierungsdetails der Klasse ausgeblendet werden kann leicht Steuerbarkeit hinzufügen, unangemessene Operationen an Attributen einschränken und so die Wartbarkeit des Codes vereinfachen.

__get und __set
Im Allgemeinen entspricht es eher der realistischen Logik, den Unterricht privat zu machen.
Zum Abrufen und Speichern von Werten werden zwei vordefinierte Funktionen verwendet.
__get Ruft den Wert ab, normalerweise den Wert der Domäne
__set Legt den Wert fest, normalerweise den Wert der Domäne
__call Beim Aufruf einer Methode, die in einem Objekt nicht vorhanden ist, tritt ein Fehleraufruf auf () ist die Methode, um mit dieser Situation umzugehen.

Statische Eigenschaften und Methoden
statisches Schlüsselwort zum Deklarieren statischer Methoden
statische statische Variable generiert eine statische Variable innerhalb der Klasse, die von allen Klassen gemeinsam genutzt werden kann. Mit anderen Worten, statische Mitglieder sind es im „Statischen Initialisierungssegment“, das beim ersten Laden der Klasse eingefügt wird, damit es von jedem Objekt im Heap-Speicher gemeinsam genutzt werden kann
Verwendungsmethoden: self::$statische Eigenschaften, self: :statische Methoden

static function p(){
echo self::$country;
echo self::PI;//访问常量
//echo $this->name;在静态方法中只能操作静态属性
//self::p();
}

Externe Aufrufe: Class::$statische Eigenschaften, Klasse::statische Methoden

const-Schlüsselwort: wird zum Generieren von Konstanten verwendet. Konstanten sind die einzige Konvention, die kann nicht geändert werden. Konstanten sind Großbuchstaben
const CONSTANT = 'constant value'; Erzeuge eine Konstante
echo self::CONSTANT;//Interner Zugriff auf die Klasse
echo ClassName::CONSTANT;//Externer Zugriff auf die Klasse

Vererbung
Objekte der Klasse B haben alle Attribute und Verhaltensweisen der Klasse A, was als Vererbung der Klasse A durch B bezeichnet wird.
Wenn eine Klasse Eigenschaften und Dienste von mehreren Klassen erbt, spricht man von Mehrfachvererbung. Normalerweise nennen wir die erbende Klasse eine Unterklasse und die geerbte Klasse ist eine übergeordnete Klasse. In PHP gibt es nur eine einzelne Vererbung, aber eine übergeordnete Klasse kann Von mehreren Klassen geerbt werden, aber eine Unterklasse kann nur eine übergeordnete Klasse haben, eine zugehörige Vererbung ist jedoch zulässig und die Definition der Klasse kann durch Vererbung reduziert werden.
extende deklariert die Vererbungsbeziehung
Syntaxformat: Klasse B erweitert A. Dieses Beispiel zeigt an, dass B A erbt.
Der externe Zugriff der Klasse ist für Unterklassen gültig.
Attribute und Methoden von Unterklassen und übergeordneten Klassen.
Die Die Unterklasse erbt den gesamten Inhalt der übergeordneten Klasse, aber auf den privaten Teil in der übergeordneten Klasse kann nicht direkt zugegriffen werden
Die neu hinzugefügten Attribute und Methoden in der Unterklasse sind Erweiterungen der übergeordneten Klasse
Was in der Unterklasse definiert ist das gleiche wie die übergeordnete Klasse Das Attribut mit demselben Namen ist eine Überschreibung des Attributs der übergeordneten Klasse, und die Methode mit demselben Namen ist auch eine Überschreibung der Methode der übergeordneten Klasse

Überschriebene Methode
In der Unterklasse, verwenden Sie parent, um auf das überschriebene Attribut in der übergeordneten Klasse und den Methoden zuzugreifen
parent::__construce();
parent::$name;
parent::fun();

überschreiben Sie die ursprünglichen Attribute der übergeordneten Klasse
Clone-Objekt Syntaxformat $c=clone $p; $c object $p gibt echo $c->name;

Objektvergleich
=== aus zwei Vergleichsoperatoren.
== vergleicht den Inhalt zweier Objekte.
=== ist das Handle des Vergleichsobjekts, also die Referenzadresse.

Der Instanzoperator wird verwendet, um zu erkennen, ob das Objekt zu einer bestimmten Klasse gehört. Der Typ gibt true zurück, wenn es nicht dazugehört.
__clone() Wenn Sie den Inhalt des Originalobjekts danach ändern möchten Beim Klonen müssen Sie __clone( ) verwenden.

function __clone(){
$this->name="我是一个克隆人";
}

final bedeutet, dass eine Klasse die endgültige Version ist, was bedeutet, dass sie nicht von Unterklassen aufgerufen werden kann

Polymorphismus

Polymorphismus bedeutet, dass in der übergeordneten Klasse definierte Attribute oder Verhaltensweisen nach der Vererbung durch die Unterklasse unterschiedliche Datentypen haben oder unterschiedliche Verhaltensweisen zeigen können. Dadurch kann dieselbe Eigenschaft oder dasselbe Verhalten in der übergeordneten Klasse und ihren verschiedenen Unterklassen eine unterschiedliche Semantik haben.
Das heißt, die Ergebnisse der Ausführung derselben Methode in der Unterklasse und der übergeordneten Klasse sind unterschiedlich.

class A {
function info(){
echo “A INFO”;
}
}
class B extends A {
function info(){
echo “B INFO”;
}
}
class C extends A {
function info(){
echo “C INFO”;
}
}
function printinfo($obj){
function printinfo(A $obj){
if($obj instanceof A)
$obj->info();
$obj->info();
}
}
$a=new A(); $b=new B(); $c=new C();
printinfo($a); //输出A INFO
printinfo($b); //输出B INFO
printinfo($c); //输出C INFO

Abstrakte Methoden und abstrakte Klassen

Abstrakte Methoden werden als Vorlagen für Unterklassen verwendet.

abstract class Person{
public $name;
abstract function getInfo();
}

Abstrakte Klassen können nicht verwendet werden. In einer abstrakten Klasse muss es eine abstrakte Methode geben. Dynamische Funktionen können jedoch in abstrakten Klassen definiert werden.
Schnittstelle
Wenn eine Klasse eine Schnittstelle erbt, muss sie alle Methoden der Schnittstelle überschreiben. Schnittstellenmethoden müssen als gemeinsam genutzt definiert werden, andernfalls können sie nicht von mehreren Schnittstellen erben >Syntax:

interface PCI{
const TYPE="PCI";
//public $name; error
function start();
function stop();
}
接口中的方法可以声明为static
interface A{ function a();}
interface B{ function b();}
interface C extends A{ function c();}
class D implements B,C{
function a(){}
function b(){}
function c(){}
}

Verwandte Empfehlungen:

Einführung in PHP-OPP-Mechanismen und -Muster (abstrakte Klassen, Schnittstellen und Vertragsprogrammierung)_php-Beispiele

Das obige ist der detaillierte Inhalt vonWas sind die Funktionen von PHP Oop? Einführung in die drei Hauptmerkmale des PHP-Oop-Denkens. 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