All dies sind innerhalb einer Klasse innerhalb einer Methode, ich versuche technisch zu verstehen, was dieses Stück Code tut. Ich bin in der Google-Welt herumgelaufen. Kann aber nichts finden, was mich zu einer Antwort führt. Ist das nur eine andere Art zu sagen.
%Vor%Auch was ist das
%Vor%Bedeutet das, dass ich eine Variable initialisiere und ihren Wert auf null setze, aber ich behalte nur die Variable bei, um den Wert nicht zu verlieren, nachdem ich die Methode ausgeführt habe?
static bedeutet in diesem Fall den aktuellen Objektumfang. Es wird in der späten statischen Bindung verwendet.
Normalerweise wird das mit self
identisch sein. Die Position, an der es sich unterscheidet, ist, wenn Sie eine Objektherarchie haben, in der der Verweis auf den Bereich für einen übergeordneten Bereich definiert ist, der jedoch für das untergeordnete Objekt aufgerufen wird. Selbst würde in diesem Fall den elterlichen Geltungsbereich referenzieren, während static auf das Kind verweisen würde
Am einfachsten ist es, über das Selbst als den definierenden Bereich und das statische Objekt als den aktuellen Objektbereich nachzudenken.
Bitte schauen Sie sich den folgenden Link an, um sich über neue Static () zu informieren.
self
ist einfach ein "Verknüpfungsname" für die Klasse, in der es auftritt. static
ist sein neueres späte statische Bindung Cousin, die sich immer auf die aktuelle Klasse bezieht. I.e. Wenn eine Klasse erweitert wird, kann static
auch auf die Kindklasse verweisen, wenn sie aus dem Kindkontext aufgerufen wird.
new static
bedeutet nur neue Instanz der aktuellen Klasse erstellen und ist einfach der dynamischere Cousin von new self
.
Und ja, static
== dynamischer ist seltsam.
Sie müssen es in den Kontext einer Klasse stellen, in der static
eine Referenz auf die Klasse ist, in der es aufgerufen wird. Wir können optional $variable
als Parameter an die% co_de übergeben % Funktion der Instanz, die Sie erstellen.
Wie so:
%Vor% Hier verweist __construct
auf static
und wir übergeben die Variable 'some parameter' als Parameter an die Funktion myClass
.
Sie können new static()
verwenden, um eine Gruppe von Klassenobjekten innerhalb der Klasse zu instanziieren und sie mit Erweiterungen der Klasse arbeiten zu lassen.