wie man Klassen in PHP lernt
Klassenstruktur: Die internen Funktionen einer Klasse können drei Dinge haben, nämlich Konstanten, Eigenschaften und Methoden. Funktionen können als Konstanten, Variablen und Funktionen außerhalb der Klasse verstanden werden.
Der Code lautet wie folgt:
<?php class TEST { const NAME = 'value'; // 常量 public $name = 'value'; // 属性 public function name() // 方法 { echo 'value'; } } ?>
Dabei können Eigenschaften und Methoden drei verschiedene Schlüsselwörter verwenden: public, protected und private, um die Funktionen von Eigenschaften und Methoden zu kombinieren Der Gültigkeitsbereich wird weiter unterschieden. Eigenschaften und Methoden mit dem Schlüsselwort „private“ können nur von Methoden in der Klasse aufgerufen werden, in der sie sich befinden. Eigenschaften und Methoden mit dem Schlüsselwort „protected“ können von Methoden in ihrer eigenen übergeordneten Klasse und Unterklasse aufgerufen werden Es kann auch nach der Instanziierung mit dem Schlüsselwort public aufgerufen werden. Der größte Vorteil besteht darin, dass es allen Eigenschaften und Methoden einige beschreibende Funktionen hinzufügt, was die Organisation und Organisation des Codes erleichtert . Struktur. Das Schlüsselwort const wird zuerst übersprungen und später zusammen mit static besprochen.
Das statische Schlüsselwort ist ein weiterer Schlüsselworttyp, der sich von „public“, „protected“ und „private“ unterscheidet (es kann also in Kombination mit „public“, „protected“ und „private“ verwendet werden):
Der Code lautet wie folgt:
<?php class TEST { public static function name() { echo 'value'; } } ?>
Methoden mit dem Schlüsselwort static können direkt über das Symbol „::“ aufgerufen werden, ohne die Klasse zu instanziieren, und werden mit public, protected und private kombiniert , Sie können den Aufruf auch Berechtigungen unterscheiden lassen, aber er wird normalerweise mit public gepaart. Das oben erwähnte konstante Schlüsselwort const sollte vom öffentlichen statischen Typ sein, sodass Konstanten nur über self::NAME, TEST::NAME aufgerufen werden können Die folgenden Methoden sind __construct, __destruct und andere statisch.
Im Strukturteil der Klasse sind die letzten beiden eingeführten Schlüsselwörter „abstract“ und „final“. Das Schlüsselwort „abstract“ gibt an, dass diese Klasse von ihren Unterklassen überschrieben werden muss, und das Schlüsselwort „final“ gibt an, dass diese Klasse nicht überschrieben werden darf Durch die Unterklassenüberschreibung sind die Funktionen dieser beiden Schlüsselwörter genau entgegengesetzt. Methoden mit abstrakten Methoden werden als abstrakte Klassen bezeichnet. Es gibt zwei Hauptmöglichkeiten, die
-Klasse zu verwenden: Es gibt zwei Hauptmöglichkeiten, die
-Klasse zu verwenden: Eine besteht darin, das neue Schlüsselwort zu verwenden, die andere darin, das „::“ zu verwenden. Symbol:
PHP-Code
Der Code lautet wie folgt:
<?php class TEST { public static function name() { echo 'value'; } } //方法1:使用new关键字 $test = new TEST; $test->name(); //方法2:使用“::”符号 TEST::name(); ?>
(1): Verwenden Sie das neue Schlüsselwort, um zu werden Eine Instanziierung. Das obige $test ist eine TEST-Klasse. Für durch Instanziierung generierte Objekte wird $test->name() als Namensmethode des $test-Objekts bezeichnet.
(2): Wenn Sie das Schlüsselwort new zur Verwendung einer Klasse verwenden, können Sie mit $this auf die Klasse selbst verweisen.
(3): Voraussetzung für die Verwendung des Symbols „::“ ist, dass die Methode das Schlüsselwort „statisch“ haben muss öffentliches Schlüsselwort, geschützt, privat, der Standardwert ist öffentlich)
(4): Dieselbe Klasse kann über das neue Schlüsselwort in mehrere verschiedene Objekte instanziiert werden, diese sind jedoch voneinander isoliert Wird die Methode verwendet, wird sie von mehreren Benutzern gemeinsam genutzt:
PHP-Code
Der Code lautet wie folgt:
<?php class TEST1 { public $name = 0; public function name() { $this->name = $this->name + 1; } } $test1 = new TEST1; $test2 = new TEST1; $test1->name(); //$name1 == 1 $test2->name(); //$name1 == 1 /*--------------------------------------------*/ class TEST2 { public static $name = 0; public static function name() { TEST2::$name = TEST2::$name + 1; } } TEST2::name(); // $name == 1 TEST2::name(); // $name == 2 ?>
Beziehung zwischen Klassen:
Die Beziehung zwischen Klassen umfasst hauptsächlich Abstraktion, Schnittstelle und Vererbung:
PHP-Code
Der Code lautet wie folgt:
<?php abstract class TEST1 // 抽象 { abstract public function name1(); public function name2() { } } class TEST2 extends TEST1 implements TEST3 // 继承 { public function name1() { } } interface TEST3 // 接口 { public function name2(); } ?>
(1) Klassen mit dem Schlüsselwort abstract sind abstrakte Klassen, und Methoden mit dem Schlüsselwort abstract sind abstrakte Methoden. Abstrakte Methoden in abstrakten Klassen müssen in Unterklassen überschrieben werden.
(2) Eine Klasse mit dem Schlüsselwort interface ist eine Schnittstelle. Es ist nicht zulässig, dass alle Methoden in der Schnittstelle in Unterklassen überschrieben werden.
(3) Die Worte „KlasseA erweitert KlasseB“ oder „KlasseA implementiert KlasseB“ bedeuten, dass eine andere Klasse geerbt wird, und „implementiert“ bedeutet, dass eine andere Schnittstelle geerbt wird. Es kann jedoch jeweils nur eine Klasse erweitert werden, es können jedoch mehrere Schnittstellen implementiert werden.
(4) Abstrakte Klassen, Schnittstellen und letztendlich geerbte und implementierte Methoden müssen öffentlich sein.
Während des Vererbungsprozesses überschreibt die Unterklasse die Methode der übergeordneten Klasse mit demselben Namen. Wenn Sie zu diesem Zeitpunkt die Methode der übergeordneten Klasse in der Unterklasse aufrufen müssen, können Sie die übergeordnete Klasse verwenden Schlüsselwort oder der Klassenname plus ":: "Symbolaufruf:
PHP-Code
Der Code lautet wie folgt:
<?php class TEST1 extends TEST2 { public function name() { echo parent::name2(); echo TEST2::name2(); } } class TEST2 { public function name2() { echo 'value2'; } } $test = new TEST1; $test->name(); ?>
Hier ist eine weitere Erklärung der Methode „::“ in der Klasse. Unter den Funktionen besteht eine darin, Konstanten aufzurufen (eigentlich kann sie auch als statisch verstanden werden), statische Eigenschaften und Methoden ohne Instanziierung, und die andere darin, bequem zu erstellen diejenigen innerhalb der Klasse über den Kanal „Selbst“, „Eltern“ und „Klasse“.
Die Beziehung zwischen Objekten ist hauptsächlich "==" gleich, "===" alle gleich, nicht gleich und Klon:
PHP-Code
<?php class TEST { public function name() { } } $test1 = new TEST; $test2 = new TEST; $test3 = $test1; echo $test1 == $test2 ? true : false; // true echo $test1 == $test3 ? true : false; // true echo $test2 == $test3 ? true : false; // true echo $test1 === $test2 ? true : false; // false echo $test1 === $test3 ? true : false; // true echo $test2 === $test3 ? true : false; // false ?>
(1)两个类只要拥有相同的属性和方法,就是“==”等于。
(2)两个类必须是指向的同一个对象,才能是“===”全等于。
clone比较特殊,在上面的例子中,$test3 = $test1的过程并不是给了 $test3 一份 $test1 对象的拷贝,而是让 $test3 指向了 $test1,如果一定要获得一份$test1的拷贝,就必须使用clone关键字:
PHP代码
代码如下:
<?php $test3 = clone $test1; ?>
类的钩子:
__autoload:
是一个函数名,也是唯一一个在类的外部使用的钩子,在实例化一个对象的时候,如果没有预先载入类,就会调用这个钩子。
__construct
在类被实例话的时候,被调用的钩子,可以做一些初始化的操作。
__destruct
在类被销毁的时候,被调用的钩子。
__call
当对象试图调用一个不存在的方法的时候,被调用的钩子
__sleep
当使用serialize()函数对一个类进行序列话操作的时候,会调用这个钩子
__wakeup
当使用unserialize()函数对一个类进行反序列话操作的时候,会调用这个钩子
__toString
当一个对象将被转变为字符串的时候,会调用这个钩子(比如echo的时候)
__set_state
当调用var_export()函数操作一个类的时候,会调用这个钩子
__clone
当使用clone关键字对一个类进行拷贝操作的时候,会调用这个钩子
__get
在获取一个类中的属性值的时候,会调用这个钩子
__set
在设置一个类中的属性值的时候,会调用这个钩子
__isset
在使用isset()函数对类中的属性值进行判定的时候,会调用这个钩子
__unset
在使用unset()函数销毁一个属性值的时候,会调用这个钩子
类的小技巧:
在实例话一个类的时候,可以使用这样的形式给__construct钩子传递参数:
PHP代码
代码如下:
<?php class TEST { public function __construct($para) { echo $para; } } $test = new TEST('value'); // 显示 value ?>
foreach()函数可以用来对类或者对象中的属性进行遍历,遍历的时候会先判断public, protected, private的情况而显示:
PHP代码
代码如下:
<?php class TEST { public $property1 = 'value1'; public $property2 = 'value2'; public $property3 = 'value3'; public function name() { foreach($this as $key => $value) { print "$key => $value\n"; } } } $test = new TEST; foreach($test as $key => $value) { print "$key => $value\n"; } $test->name(); ?>
在给类中的方法传递参数的时候,可以对参数进行强制的判定,这里只支持对数组和对象的判定:
PHP代码
代码如下:
<?php class TEST1 { public function name( TEST2 $para ) { } } class TEST2 { } $test2 = new TEST2; $test1 = new TEST1; $test1->name('value'); // 会报错,因为这个参数必须是TEST2实例化以后的对象 $test1->name($test1); // 不会报错 ?>
兼容php4的语法:
php5的类是往下兼容php4的,这些php4时代的语法也得到了继承,但是并不建议在php5的环境中使用。
(1)使用var预设属性,会自动转换成public。
(2)使用类名作为构造函数,在没有__construct构造方法的情况下,会寻找和类名相同的函数作为构造函数。
Das obige ist der detaillierte Inhalt vonwie man Klassen in PHP lernt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
