Detaillierte Erläuterung der statischen Schlüsselwörter von phpOO und Beispiele für Klassenkonstanten

伊谢尔伦
Freigeben: 2023-03-11 21:44:01
Original
1089 Leute haben es durchsucht

Als ich nichts zu tun hatte, suchte ich einfach nach ein paar Informationen über OO in PHP Zugriffskontrollmodifikatoren, self, parent, const, static sind der Schlüssel Wörter. Wörter, Pfeiloperator (im Buch auch so genannt... d. h. „->“), Bereichsanalyseoperator (d. h. Doppelpunkt „::“), aber Ich denke, das ist weitgehend dasselbe wie OO in der C#-Sprache und leicht zu verstehen, aber es ist besser, einen Blick darauf zu werfen und die OO-Ideen in PHP zu klären. -------------------------------------------------------- ---------------------------------------------

Statisch deklarieren Klassenmitglieder und -methoden, sodass keine Instanz der Klasse erforderlich ist. Auf eine statische Memberdeklaration kann nicht über eine Instanz eines Klassenobjekts zugegriffen werden (obwohl dies bei einer statischen Methode der Fall ist).

Statische Deklarationen müssen nach Sichtbarkeitsdeklarationen erfolgen. Wenn aus Kompatibilitätsgründen mit PHP 4 keine Sichtbarkeit deklariert ist, werden Mitglieder und Methoden so behandelt, als wären sie öffentlich deklariert worden.
Da statische Methoden Nicht-Objekt-Instanzen aufrufen können, kann die Pseudovariable $this nicht in als statisch deklarierten Methoden verwendet werden.
Tatsächlich wird die Form des statischen Methodenaufrufs zur Kompilierungszeit bestimmt. Bei Verwendung eines Klassennamens, der deklariert werden muss, handelt es sich bei der Methode um eine vollständige Identifizierung und es gelten keine
Vererbungsregeln
. Dieser Ansatz ist vollständig gültig, wenn Klassennamen verwendet werden, die deklariert werden müssen, und es gibt keine Regeln für die Verwendung der Vererbung. Wenn self deklariert wurde, wird self von der Klasse interpretiert, zu der es aktuell gehört. Es gelten auch keine Erbschaftsregeln. Auf statische Eigenschaften kann nicht mit nicht-statischen Methoden über den Pfeiloperator -> zugegriffen werden. Dadurch wird eine Warnung auf E_STRICT-Ebene generiert.

Der Code lautet wie folgt:

<?php
class Foo
{   public static $my_static=&#39;foo&#39;;
    public function staticValue(){   return self::$my_static;   }
}
class Bar 
extends
 Foo
{   public function fooStatic(){   return parent::$my_static;   }
}
print Foo::$my_static."/n";
$foo = new Foo();
print $foo->staticValue()."/n";
print $foo->my_static."/n";// Undefined "Property" my_static 
// $foo::my_static is not possible
print Bar::$my_static."/n";
$bar = new Bar();
print $bar->fooStatic()."/n";
?>
Nach dem Login kopieren
Der Code lautet wie folgt:


kann sein In jeder Basisklasse definiert. Die Konstante hält sie konstant. Eine Konstante unterscheidet sich von einer gewöhnlichen Variablen dadurch, dass Sie sie nicht mit dem $-Symbol deklarieren oder verwenden. Genau wie bei statischen Elementen kann auf einen konstanten Wert nicht über eine Instanz eines Objekts zugegriffen werden (verwenden Sie stattdessen $object::constant). Der konstante Wert muss eine Konstante
//静态方法实例(Static method example) 
<?php
class Foo
{   public static function aStaticMethod() {    }
}
Foo::aStaticMethod();
?>
Nach dem Login kopieren
Ausdruck

sein, keine Variable, sondern ein Mitglied von a Klasse, das Ergebnis eines mathematischen Ausdrucks oder Funktionsaufrufs.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der statischen Schlüsselwörter von phpOO und Beispiele für Klassenkonstanten. 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