Grundkenntnisse
Klasse: Eine Sammlung von Klassen mit denselben Attributen oder Methoden. Beispielsweise sind Chevrolet-Autos eine Chevrolet-Autokategorie, Mercedes-Benz-Autos eine Mercedes-Benz-Autokategorie und BMW-Autos eine BMW-Autokategorie, und diese drei Kategorien sind Unterkategorien der Hauptautokategorie.
Objekt: Eine spezifische Implementierung der Klasse. Der BMW Q5 ist beispielsweise eine spezifische Implementierung der BMW-Autoklasse. Objekte werden im Speicher gespeichert. Werfen wir einen Blick auf die Zuordnung von Objekten im Speicher.
Verwendung objektorientierter Mittel zur flexiblen Nutzung der beiden oben genannten Wissenspunkte. Lassen Sie uns Klassen und Objekte erstellen und
<?php /** *新建一个类 */ class newClass{ public $a; public $b; public function funA(){ echo "I am function A"; } public function funB(){ echo "I am function B"; } } /** *使用类创建对象 */ $opt=new newClass(); $opt->a="opt";//将opt对象中的a属性赋值为opt $opt->funA();//打印出"I am function A"?>
Modifikatoren verwenden: Beim Definieren von Klassen und Attributen in Klassen können wir die folgenden drei Modifikatoren verwenden. Wenn sie nicht hinzugefügt werden, ist der Standardwert öffentlich
öffentlich: Maximum Berechtigungen
geschützt: Berechtigungsbereich innerhalb sich selbst und seiner Unterklassen
privat: Berechtigungsbereich nur innerhalb sich selbst
Konstruktor und Destruktor: Wenn wir eine Klasse instanziieren, um ein Objekt zu erstellen, müssen wir das Objekt häufig initialisieren. Zu diesem Zeitpunkt müssen wir eine Konstruktormethode in der Klasse definieren. Wenn wir mit der Verwendung des Objekts fertig sind, müssen wir das Objekt freigeben, um die Speichernutzung zu reduzieren. Zu diesem Zeitpunkt müssen wir die Destruktormethode verwenden.
In PHP verwenden wir die Methode __construct() und __destruct(), den folgenden Code
<?php class newClass{ public $a; public $b; public function __construct($a,$b){ $this->a=$a; $this->b=$b; echo "我是构造函数"; } public function __destruct(){ echo "我是析构函数"; } } ?>
Kapselung
Wenn wir einige entwickeln Bei wichtigen Programmmodulen möchten wir oft nicht, dass andere problemlos auf die Daten dieser Programmmodule zugreifen können, daher müssen wir die Daten kapseln. Zu diesem Zeitpunkt müssen wir eine Datenzugriffskontrolle durchführen, häufig mit private Schlüsselwort, um diese Eigenschaften und Methoden zu kapseln.
Wie folgt:
<?php class privateClass { private $a; private $b; private function privateFun() { echo "我是封装的方法"; } } ?>
Auf diese Weise können wir beim Erstellen eines Objekts keine privaten Eigenschaften und Methoden aufrufen. Aber wir können auf diese privaten Eigenschaften und Methoden zugreifen, indem wir magische Methoden verwenden.
Die Verwendung von __set() und __get()
Über die Methode __set() können wir die Werte der Mitgliedsattribute direkt über das Objekt festlegen
Über die Methode __get() können wir sie direkt erhalten die Mitgliedsattributwerte durch das Objekt
<?php class setClass { private $a; private $b="ww"; public function __set($oldValue,$newvalue){ $this->$oldValue=$newvalue; } public function __get($newvalue){ return $newvalue; } } $opt= new setClass(); $opt->a="sss";//直接设置私有属性值 echo $opt->b;//直接读取私有属性值 ?>
Die Verwendung von __isset() und __unset()
Verwenden Sie __isset(), um direkt zu überprüfen, ob die privaten Attribute im Objekt vorhanden sind
Verwenden __unset() zum direkten Löschen der privaten Attribute im Objekt
<?php class issetClass { private $a; private $b = 'www'; function __isset($privateName) { if (isset($privateName)) { return 1; } else { return 0; } } function __unset($privateName) { echo "销毁" . $privateName; } } $opt = new issetClass(); echo isset($opt->$b); var_dump(unset($opt->$b));?>
Vererbung
Wenn wir mehrere Klassen schreiben, haben oft mehrere Klassen dasselbe Eigenschaften und Methoden Um den Code zu vereinfachen, führen wir die Vererbung ein. Das Konzept der Unterklassen kann einige Attribute und Methoden der übergeordneten Klasse erben und so das Schreiben redundanten Codes reduzieren.
So schreiben Sie geerbte Klassen
Wir verwenden das Schlüsselwort „extends“, um Unterklassen zu schreiben
<?php class parentClass{ } class childClass extends parentClass{ } ?>
Wie oben ist childClass eine Unterklasse von parentClass. PHP unterstützt nur die Einzelvererbung nur eine übergeordnete Klasse, aber eine übergeordnete Klasse kann mehrere Unterklassen haben.
Schreiben Sie die Methode der übergeordneten Klasse neu
Wenn die Methode in der übergeordneten Klasse die Verwendung der Unterklasse nicht erfüllen kann, können wir die Methode der übergeordneten Klasse überschreiben. Wenn wir jedoch die Methode der übergeordneten Klasse in der Unterklasse verwenden möchten, können wir die folgende Syntax verwenden: parent:: method name
3.1 final
final kann die ändern Klasse Mit Methoden können Mitgliedsattribute nicht geändert werden;
Mit final geänderte Klassen können nicht vererbt werden und mit final geänderte Methoden können in Unterklassen nicht überschrieben werden
3.2 static
static can Ändern Sie Mitgliedseigenschaften und Mitgliedsmethoden, aber keine Klassen. Mit Static geänderte Mitglieder und Methoden können mithilfe der folgenden Syntax direkt verwendet werden: Klassenname::$Eigenschaftsname oder Methodenname (
in). Verwenden Sie bei Verwendung in einer Klasse die folgende Syntax: self::$ Attributname oder Methodenname );
Zum Beispiel const TT=90, wenn Sie eine Konstante verwenden, verwenden Sie direkt die folgende Syntax self::constant name
3.4 Instanz von
Verwenden Sie dieses Schlüsselwort zum Erkennen ob eine Instanz eine bestimmte Instanz einer Klasse ist.
Wie folgt
<?php trait testA { function a() { } } trait testB { function b() { } } class testC { use testA, testB; function c() { } } ?>
Abstrakte Technologie
Mit dem Schlüsselwort abstract geänderte Methoden und Klassen werden abstrakte Methoden oder abstrakte Klassen genannt . Abstrakte Klassen und abstrakte Methoden deklarieren<?php
abstract class testClass
{
$a;
$b;
abstract function testFun();
abstract function testFun1();
public function optFun()
{
echo "抽象类中的抽象方法";
}//抽象类可以有非抽象方法
}
class childClass extends testClass
{
function testFun()
{
echo "子类中实现抽象方法";
}
function testFun1()
{
echo "子类实现抽象方法";
}
}
abstract child1Class extends testClass
{
}//子类是抽象方法可以不实现父类的抽象方法?>
Schnittstellentechnologie
Schnittstelle ist eine spezielle abstrakte Klasse und kann nur in der Schnittstelle deklariert werden Schnittstellennutzungsschnittstelle, implementieren Sie die Schnittstelle mithilfe von Implementierungen. Der Modifikator kann nur die Standard-Öffentlichkeit sein. Eine Unterklasse kann mehrere Schnittstellen erben und gleichzeitig eine übergeordnete Klasse erben. Polymorphismus in PHP erfordert, dass eine Klasse über mehrere Unterklassen vererbt wird. Wenn eine Klassenmethode in mehreren Unterklassen überschrieben wird und unterschiedliche Funktionen implementiert, nennen wir das Polymorphismus. Empfohlenes Tutorial: „PHP-Tutorial“ Das obige ist der detaillierte Inhalt vonPHP-objektorientierte einfache Zusammenfassung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!<?php
interface newInterface
{
const V = 12;
abstract function fun1();
abstract function fun2();
}
interface newInterface1
{
abstract function fun3();
abstract function fun4();
}
class parentClass
{
function fun5()
{
echo "fun5";
}
}
class optClass extends parentClass implements newInterface, newINterface1
{
function fun1()
{
echo "fun1";
}
function fun2()
{
echo "fun2";
}
function fun3()
{
echo "fun3";
}
function fun4()
{
echo "fun4";
}
} ?>