Der Unterschied zwischen New Static und New Self in PHP

WBOY
Freigeben: 2016-08-08 09:19:53
Original
859 Leute haben es durchsucht

Heute fragte der Chef nach dem Unterschied zwischen „New Static“ und „New Self“ im Unternehmen. Keines der zehn Programme im Unternehmen hatte eine Antwort. . .

Nachdem ich nach Hause kam, ging ich nach Baidu, um mehr über den Unterschied zwischen den beiden zu erfahren:

Verwenden Sie self:: oder __CLASS__ Der statische Verweis auf die aktuelle Klasse hängt von der Klasse ab, in der die aktuelle Methode definiert ist:

mit static:: wird nicht mehr in die Klasse geparst, in der die aktuelle Die Methode ist zwar definiert, wird aber tatsächlich zum berechneten Zeitpunkt ausgeführt. Es kann auch als „statische Bindung“ bezeichnet werden, da es für Aufrufe statischer Methoden verwendet werden kann (aber nicht darauf beschränkt ist).

In einfachen Worten bezieht sich self auf die Klasse, in der es geschrieben ist, und diese Klasse wird tatsächlich als sogenannte späte statische Bindung bezeichnet. Static repräsentiert die verwendete Klasse, also die Klasse, die Sie sind Verwenden in der übergeordneten Klasse Schreiben Sie static,

und verwenden Sie dieses static dann direkt/indirekt über Unterklassen. Dieses static bezieht sich auf diese Unterklasse, daher ist static $this sehr ähnlich, aber static kann kann für statische Methoden und Eigenschaften usw. verwendet werden.

Bitte sehen Sie sich die Beispiele an

<?<span>php
</span><span>class</span><span> Person
{
    </span><span>public</span><span>static</span><span>function</span><span> name()
    {
        </span><span>echo</span> "xiaosan"<span>;
    }
    </span><span>public</span><span>static</span><span>function</span><span> callself()
    {
        self</span>::<span>name();
    }

    </span><span>public</span><span>static</span><span>function</span><span> callstatic()
    {
        </span><span>static</span>::<span>name();
    }
}

</span><span>class</span> Man <span>extends</span><span> Person
{
    </span><span>public</span><span>static</span><span>function</span><span> name()
    {
        </span><span>echo</span> "gaojin"<span>;
    }
}
Man</span>::name();  <span>//</span><span> output: gaojin</span>Person::callself();  <span>//</span><span> output: xiaosan</span>Person::callstatic();  <span>//</span><span> output:gaojin</span>?>
Nach dem Login kopieren

Der Herausgeber studiert weiter

Das Obige stellt den Unterschied zwischen New Static und New Self in PHP vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, 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