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: $manager = new Employee();
if ($manager instanceof Employee)
echo "Yes";
有两点值得注意。首先,类名没有任何定界符(引号)。使用定界符将导致
语法错误
。其次,如果比较失败,脚本将退出执行。instanceof关键字在同时处理多个对象时特别有用。例如,你可能要重复地调用某个函数,但希望根据对象类型调整函数的行为。可以使用case语句和instanceof关键字来实现这个目标。
class test{}
class test{}
class testChilern
Extends
test{}
$a = new test();
$m = new test();
$i = ($m instanceof test);
if($i)
echo '$m是类test的实例!<br />'; // get this value
switch ($a instanceof test){
case true :
echo 'YES<br />';
break;
case false :
echo 'No<br />'; //get this value
break;
}
$d=new testChilern();
if($d instanceof test)echo '$d是类test的子类!<br />'; // get this value
Erste Verwendung:
<?php $obj = new A(); if ($obj instanceof A) { echo 'A'; }
<?php interface ExampleInterface { public function interfaceMethod(); } class ExampleClass implements ExampleInterface { public function interfaceMethod() { return 'Hello World!'; } } $exampleInstance = new ExampleClass(); if($exampleInstance instanceof ExampleInterface){ echo 'Yes, it is'; }else{ echo 'No, it is not'; } ?>
Achten Sie außerdem auf „instanceof“ und „is_subclass_of“ ( ), schauen Sie sich bitte den Code an:
<?php class Foo { public $foobar = 'Foo'; public function test() { echo $this->foobar . "\n"; } } class Bar extends Foo { public $foobar = 'Bar'; } $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, 'Foo')); // FALSE var_dump(is_subclass_of($b, 'Foo')); // TRUE echo "subclass of Bar\n"; var_dump(is_subclass_of($a, 'Bar')); // FALSE var_dump(is_subclass_of($b, 'Bar')); // 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)
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:
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!