Heim > Backend-Entwicklung > PHP-Tutorial > Die Verwendung des letzten statischen const-Schlüsselworts in PHP ist objektorientiert

Die Verwendung des letzten statischen const-Schlüsselworts in PHP ist objektorientiert

WBOY
Freigeben: 2016-08-08 09:19:50
Original
804 Leute haben es durchsucht

Dieses Schlüsselwort kann nur zum Definieren von Klassen und Methoden verwendet werden, da „final“ eine Konstante bedeutet. Wir verwenden die Funktion „define()“ zum Definieren von Konstanten und können daher „final“ nicht verwenden Definieren Sie Mitgliedseigenschaften.

14. Anwendung des Schlüsselworts final
Dieses Schlüsselwort kann nur zum Definieren von Klassen und Methoden verwendet werden, da
final eine Konstante bedeutet define()-Funktion zum Definieren von Konstanten in PHP, daher können wir final nicht zum
Definieren von Mitgliedsattributen verwenden.
Klassen, die mit dem Endschlüssel markiert sind, können nicht vererbt werden;
Codefragmente
Endklasse Person{
… …
}
Klasse Student erweitert Person{
}
Ja Der folgende Fehler tritt auf:
Schwerwiegender Fehler: Klasse Student darf nicht von der endgültigen Klasse (Person) erben
Mit dem endgültigen Schlüssel markierte Methoden können nicht von Unterklassen überschrieben werden und sind die endgültige Version; class Person{
final function say() {
}
}
class Student erweitert Person{
function say() {
}
}
Der folgende Fehler wird auftreten:
Schwerwiegender Fehler: Die endgültige Methode Person::say() kann nicht überschrieben werden
15. Verwendung von statischen und const-Schlüsselwörtern
Statisches Schlüsselwort beschreibt Mitgliedseigenschaften und Mitgliedsmethoden in der Klasse als statische Mitglieder sind die Vorteile?
Zuvor haben wir den Menschen als „Person“ deklariert. Wenn wir in der Klasse „Person“ ein Attribut „des Landes, zu dem die Person gehört“ hinzufügen
, können wir die Klasse „Person“ verwenden, um Hunderte zu instanziieren oder mehr Instanzobjekte, jedes Objekt wird das Attribut „Land“ haben. Wenn das Projekt für die Chinesen entwickelt wird, dann hat jedes Objekt das Attribut „China“ und andere Attribute sind unterschiedlich. Wenn wir das Attribut „Land“ zu einem statischen
-Mitglied machen, gibt es nur ein Länderattribut im Speicher, und es gibt Hunderte oder mehr Objekte, die dieses Attribut
extern einschränken können Zugriff, da statische Mitglieder zur Klasse gehören und keiner Objektinstanz angehören. Ihnen wird Speicherplatz zugewiesen, wenn die Klasse zum ersten Mal geladen wird, und sie werden nur mit Instanzen der Klasse geteilt kann
die Mitglieder der Klasse bis zu einem gewissen Grad schützen
Lassen Sie es uns aus der Perspektive des Speichers analysieren. Das Objekt wird logisch in den „Heap-Speicher“ unterteilt. Die Referenz des Objekts wird im „Stapelspeicher“ platziert und die statischen Mitglieder werden im „initialisierten statischen Segment“ platziert, wenn die Klasse zum ersten Mal geladen wird
Wenn sie platziert wird, kann sie von jedem Objekt gemeinsam genutzt werden im Heap-Speicher, wie unten gezeigt;


Statische Variablen der Klasse sind den globalen Variablen sehr ähnlich und können von allen Instanzen der Klasse gemeinsam genutzt werden das gleiche
, ähnlich der globalen Funktion.
Codeausschnitt


Code kopieren

Der Code lautet wie folgt:

< Klassenperson{ / /Das Folgende ist das statische Mitgliedsattribut der Person public static $myCountry="China";// var $name; //Der Name der Person

//Dies ist das statische Mitglied Methode der Person

public static function say(){
echo „I am Chinese
“; $myCountry;
//Auf statische Methoden zugreifen
Person::say();
//Statische Eigenschaften neu zuweisen
Person::$myCountry="
echo Person:: $myCountry;
?>
Da statische Mitglieder erstellt werden, wenn die Klasse zum ersten Mal geladen wird, kann auf statische Mitglieder über den Klassennamen
zugegriffen werden, ohne dass ein Objekt außerhalb der Klasse erforderlich ist, wie oben erwähnt. Statische Mitglieder werden von jedem Instanzobjekt von geteilt Diese Klasse, dann
Können wir mithilfe von Objekten auf statische Mitglieder in der Klasse zugreifen? Aus dem Bild oben können wir ersehen, dass nicht in jedem Objekt statische Mitglieder vorhanden sind, aber jedes Objekt gemeinsam genutzt werden kann. Wenn wir also Objekte verwenden, um auf Mitglieder zuzugreifen, gibt es keine solche Attributdefinition, und auf statische Mitglieder kann nicht über Objekte zugegriffen werden . In anderen objektorientierten Sprachen wie
Java können Sie Objekte verwenden, um auf statische Elemente zuzugreifen. Wenn Sie Objekte verwenden können, um auf statische Elemente in PHP zuzugreifen,
wir versuchen, sie nicht zu verwenden, da der Zweck von Statische Mitglieder bei der Arbeit an Projekten besteht darin, Klassennamen zu verwenden, um auf sie zuzugreifen.
Statische Methoden in einer Klasse können nur auf die statischen Attribute der Klasse zugreifen. Der Grund dafür ist sehr einfach Klasse Um auf andere Mitglieder dieser Klasse zuzugreifen, müssen wir die Referenz $this
verwenden, und der Referenzzeiger $this stellt das Objekt dar, das diese Methode aufruft. Wir sagten, dass statische Methoden nicht mit Objekten
aufgerufen werden, sondern Mit dem Klassennamen, auf den zugegriffen werden soll, gibt es überhaupt kein Objekt und keine $this-Referenz. Ohne
kann $this nicht auf nicht statische Mitglieder in der Klasse zugreifen, und da statische Mitglieder in der Klasse verwendet werden können Auf das Objekt
wird zugegriffen, sodass die statischen Methoden in der Klasse nur auf die statischen Attribute der Klasse zugreifen können. Da $this nicht existiert, verwenden wir eine spezielle Klasse, um auf andere statische Mitglieder in der statischen Methode
zuzugreifen. self"; self ähnelt $this, außer dass self die Klasse darstellt, in der sich
diese statische Methode befindet. In einer statischen Methode können Sie also den „Klassennamen“ der Klasse verwenden, in der sich die Methode befindet, oder „self“ verwenden, um auf andere statische Mitglieder zuzugreifen. Wenn keine besonderen Umstände vorliegen, verwenden wir normalerweise Letzteres. das heißt, die Methode „self: :Member
Member Attribute“.
Codeausschnitt



Code kopieren

Der Code lautet wie folgt:< Klassenperson{

/ /Das Folgende sind die statischen Mitgliedsattribute von Personen

public static $myCountry="China"
//Dies ist die statische Mitgliedsmethode von Personen. Greifen Sie über sich selbst auf andere statische Mitglieder zu
public static function say(){
echo "I am".self::$myCountry."
"
}
}
//Zugriff auf die statische Methode
Person::say ();
?>


Kann auf statische Elemente zugegriffen werden, aber „$this“ kann auch nicht verwendet werden Verwenden Sie Klassennamen oder „self::form of member attribute“.
const ist ein Schlüsselwort zum Definieren von Konstanten in PHP. Um Konstanten in PHP zu definieren, wird
zum Definieren von Konstanten in einer Klasse verwendet, ähnlich wie #define in C Wenn der Wert von

im Programm geändert wird, tritt ein Fehler auf. Die Zugriffsmethode für Mitgliedsattribute, die mit „const“ geändert wurden, ähnelt der Zugriffsmethode für Mitgliedsattribute, die mit „static“ geändert wurden. Klassenname“ und das Schlüsselwort „self“ in der Methode. Sie müssen jedoch weder das Symbol „$“
verwenden, noch können Sie Objekte verwenden, um darauf zuzugreifen.
Code-Snippet



Code kopieren

Der Code lautet wie folgt:

class MyClass{ //Definieren Sie eine konstante Konstante const konstant = 'konstanter Wert';

funktion showConstant() {

echo self::constant . //Verwenden Sie self, um darauf zuzugreifen add „$“
}
}
echo MyClass::constant . //Verwenden Sie den Klassennamen, um darauf zuzugreifen, ohne „$“ hinzuzufügen
$class = new MyClass(); 🎜>$class ->showConstant();
// echo $class::constant; ist nicht zulässig







Das Obige stellt die Verwendung des finalen statischen const-Schlüsselworts in PHP objektorientiert vor, einschließlich der relevanten Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

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