Ich versuche, so etwas zu tun, aber es gelingt mir nicht.PHP: polymorphe abstrakte statische Methoden
abstract class Animal
{
abstract static function getName();
static function sayName() { echo self::getName(); }
}
danke!
Ich versuche, so etwas zu tun, aber es gelingt mir nicht.PHP: polymorphe abstrakte statische Methoden
abstract class Animal
{
abstract static function getName();
static function sayName() { echo self::getName(); }
}
danke!
Es wäre schön gewesen, wenn Sie einen Hinweis auf gegeben hätte, wie Sie „gelingt es nicht,“ aber ich nehme an, Sie sind zu stolpern über statische Bindungen und müssen late static bindings in PHP 5.3 eingeführt verwenden.
Meine Vermutung ist vielleicht, Sie versuchen, ein Objekt aus dieser Klasse zu instanziieren.
Sie kann nicht. Es ist eine abstract
Klasse. Unterklasse es und instanziiere das dann.
Das wird nicht gelingen - Sie können keine abstrakte statische Funktion haben. Siehe die akzeptierte Antwort Why does PHP 5.2+ disallow abstract static class methods? für Details darüber, warum.
Sie haben zwei Probleme:
Wie geht es dir nicht erfolgreich? – alex