Ich denke, diese Frage ist mehr auf die Sprache-Geeks ausgerichtet. Ich habe die folgende Klasse:Aufruf einer öffentlichen, statischen Funktion in einer abstrakten Klasse
<?php
abstract class ScopeFactory
{
public static function doStuff()
{
}
}
Nun, ich bin in der Lage, diese Funktion aufzurufen, etwa so:
ScopeFactory::doStuff()
Und das funktioniert glücklich. Ich habe immer unter dem Eindruck codiert, dass abstract
Klassen nicht direkt verwendet werden können - und sie müssen von einer konkreten Klasse implementiert werden, um aufrufbar zu sein.
Mein Eindruck von static
ist, dass es keine Instanz aufrufbar sein muss.
Könnte mir jemand erklären, warum das legal ist, und wenn es sein sollte? Ich bin neugierig auf die feineren Details.
Ja, eine statische Methode wird nicht an derselben Stelle wie die Klasseninstanz gespeichert (Instanz! = Deklaration). Dies wird Ihnen Hinweise geben: http://stackoverflow.com/questions/17407203/can-we-use-static-method-in-anabstract-class –