Ausführliche Erläuterung der PHP-Klassen- und Methodenschlüsselwort-Tutorials

亚连
Freigeben: 2023-03-26 10:22:01
Original
2226 Leute haben es durchsucht

Das Folgende ist ein Tutorial zu PHP-Klassen und Methodenschlüsselwörtern, das ich für Sie zusammengestellt habe. Interessierte Studenten können es sich ansehen.

1. final
Wenn wir nicht möchten, dass eine Klasse vererbt wird, verwenden wir final, um die Klasse zu ändern. Diese Klasse wird nicht vererbt.
final---wird vor Klassen und Methoden verwendet.
Abschlussklasse---kann nicht vererbt werden.
Endgültige Methode – kann nicht überschrieben werden.
2. Öffentlich bedeutet global und kann von Unterklassen innerhalb und außerhalb der Klasse aufgerufen werden. Privat bedeutet privat und kann nur innerhalb dieser Klasse verwendet werden. Geschützt bedeutet, dass nur von dieser Klasse, Unterklassen oder anderen darauf zugegriffen werden kann übergeordnete Klassen;
3. Dies ist ein Zeiger auf das aktuelle Objekt (kann als Zeiger in C betrachtet werden), self ist ein Zeiger auf die aktuelle Klasse und parent ist ein Zeiger auf die übergeordnete Klasse
self: Wenn Variablen und Methoden auf statisch gesetzt sind, verwenden Sie in dieser Klasse self
4, static
, um Klassenmitglieder oder Methoden als statisch zu deklarieren, und Sie können direkt darauf zugreifen, ohne die Klasse zu instanziieren. Sie können nicht auf statische Mitglieder zugreifen (. außer statischen Methoden) durch ein Objekt. Statische Mitglieder gehören zur Klasse und keiner Objektinstanz, Objektinstanzen der Klasse können jedoch gemeinsam genutzt werden.
Dann schauen wir uns den Unterschied zwischen der Verwendung von $object->… und der Verwendung von class::… an:
1 Wenn Sie $object->… verwenden, müssen Sie den KonstruktorObjekte erstellen 2. Verwenden Sie class::..., um statische Methoden/Variablen aufzurufen, ohne den Konstruktor auszuführen. Um nicht statische Methoden/Variablen aufzurufen, ist es auch nicht erforderlich, einen Konstruktor auszuführen, um ein Objekt zu erstellen. 5. Zusammenfassung
1.
Abstrakte Klasse
Abstrakte Klasse
1. Eine abstrakte Klasse bezieht sich auf eine Klasse, bei der das abstrakte Schlüsselwort vor der Klasse und eine abstrakte Methode hinzugefügt wird (abstraktes Schlüsselwort, das vor dem Funktionsschlüsselwort der Klassenmethode hinzugefügt wird). 2. Abstrakte Klassen können nicht direkt instanziiert werden. Die abstrakte Klasse definiert (oder implementiert) nur die von der Unterklasse benötigten Methoden. Unterklassen können eine abstrakte Klasse konkretisieren, indem sie sie erben und alle abstrakten Methoden in der abstrakten Klasse implementieren. 3. Wenn eine Unterklasse instanziiert werden muss, muss sie alle abstrakten Methoden in der abstrakten Klasse implementieren. Wenn die Unterklasse nicht alle abstrakten Methoden in der abstrakten Klasse implementiert, ist die Unterklasse ebenfalls eine abstrakte Klasse und muss in der Klasse durch das Schlüsselwort abstract vorangestellt werden und kann nicht instanziiert werden.
6. Schnittstellenschnittstelle
1. Abstrakte Klassen stellen Standards für die konkrete Implementierung bereit, während Schnittstellen reine Vorlagen sind. Schnittstellen definieren nur Funktionen, keinen Implementierungsinhalt. Schnittstellen werden mit dem Schlüsselwort interface deklariert.
2. Die Schnittstelle ist vollständig abstrakt. Sie kann nur Methoden und nur öffentliche Methoden deklarieren, keine Methodenkörper definieren und keine Instanzvariablen deklarieren. Schnittstellen können jedoch konstante Variablen deklarieren. Das Platzieren konstanter Variablen in einer Schnittstelle verstößt jedoch gegen ihren Zweck, als Schnittstelle zu existieren, und verwirrt auch die unterschiedlichen Werte von Schnittstellen und Klassen. Wenn Sie es wirklich benötigen, können Sie es in die entsprechende abstrakte Klasse oder Klasse einfügen.
7. Instanz von
Ein weiteres neues Mitglied von PHP5 ist das Schlüsselwort instdnceof. Verwenden Sie dieses Schlüsselwort, um zu bestimmen, ob ein Objekt eine Instanz einer Klasse oder eine Unterklasse einer Klasse ist oder eine bestimmte Schnittstelle implementiert, und um entsprechende Vorgänge auszuführen. In manchen Fällen möchten wir feststellen, ob eine Klasse von einem bestimmten Typ ist oder eine bestimmte Schnittstelle implementiert. Die Instanz des
Operators
ist perfekt für diese Aufgabe. Der Instanzoperator prüft drei Dinge: ob die Instanz von einem bestimmten Typ ist, ob die Instanz von einem bestimmten Typ erbt und ob die Instanz oder eine ihrer Vorgängerklassen eine bestimmte Schnittstelle implementiert. Angenommen, Sie möchten wissen, ob ein Objekt mit dem Namen manager eine Instanz der Klasse Employee ist:

Welche Rolle spielt die Instanz von in PHP? (1) Bestimmen Sie, ob ein Das Objekt gehört zu einer bestimmten Klasseninstanz. (2) Bestimmen Sie, ob ein Objekt eine bestimmte Schnittstelle implementiert.
Erste Verwendung:

<?php
$obj = new A();
if ($obj instanceof A) {
  echo &#39;A&#39;;
}
Nach dem Login kopieren

Zweite Verwendung:

<?php
interface ExampleInterface
{
   public function interfaceMethod();
 }
 class ExampleClass implements ExampleInterface
{
   public function interfaceMethod()
   {
     return &#39;Hello World!&#39;;
   }
 }
$exampleInstance = new ExampleClass();
 if($exampleInstance instanceof ExampleInterface){
   echo &#39;Yes, it is&#39;;
 }else{
   echo &#39;No, it is not&#39;;
} 
?>
Nach dem Login kopieren

Ausgabeergebnis: Ja, es ist

Achten Sie außerdem auf „instanceof“ und „is_subclass_of“ ( ), schauen Sie sich bitte den Code an:

<?php
class Foo {
   public $foobar = &#39;Foo&#39;;
   public function test() {
     echo $this->foobar . "\n";
   }
 }
 class Bar extends Foo {
   public $foobar = &#39;Bar&#39;;
 }
$a = new Foo();
$b = new Bar();
echo "use of test() method\n";
$a->test();
$b->test();
echo "instanceof Foo\n";
var_dump($a instanceof Foo); // TRUE
var_dump($b instanceof Foo); // TRUE
echo "instanceof Bar\n";
var_dump($a instanceof Bar); // FALSE
var_dump($b instanceof Bar); // TRUE
echo "subclass of Foo\n";
var_dump(is_subclass_of($a, &#39;Foo&#39;)); // FALSE
var_dump(is_subclass_of($b, &#39;Foo&#39;)); // TRUE
echo "subclass of Bar\n";
var_dump(is_subclass_of($a, &#39;Bar&#39;)); // FALSE
var_dump(is_subclass_of($b, &#39;Bar&#39;)); // FALSE
?>
 输出结果(PHP 5.4.4):
 use of test() method
 Foo
 Bar
 instanceof Foo
 bool(true)
 bool(true)
 instanceof Bar
 bool(false)
 bool(true)
 subclass of Foo
 bool(false)
 bool(true)
 subclass of Bar
 bool(false)
Nach dem Login kopieren

Das obige ist ein Tutorial, das ich für Sie zusammengestellt habe, um die Schlüsselwörter der PHP-Klasse und -Methode zu erklären. Ich hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

Spezifische Verwendungsmethoden für Namespace und Verwendung

PHP-Verschlussfunktion() use() Detaillierte Verwendung Anleitung

Detaillierte Nutzungsanleitung für PHP-Namespace-Namespace und Importverwendung


Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der PHP-Klassen- und Methodenschlüsselwort-Tutorials. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage