Es ist erlaubt, aber es generiert eine E_STRICT
Warnung:
In den früheren OO-Implementierungen von PHP wurde dies stillschweigend erlaubt, aber seither wurden bessere Praktiken übernommen.
Das Gegenteil funktioniert jedoch ohne Probleme:
%Vor% Dies druckt Hello world
.
Es sieht so aus, als ob die Entwickler von PHP keinen Wert darin sehen, den statischen Zugriff von nicht statischen Methoden zu verbieten. Dies ist nur eines dieser idiosynkratischen Features von PHP, die eigentlich keinen Zweck erfüllen. Es ist sicherlich eine schlechte Programmierpraxis, eine nicht statische Methode statisch aufzurufen, aber in PHP ist es möglich. Vielleicht werden sie das in einer zukünftigen Version von PHP nicht zulassen, aber im Moment ist es nur ein Teil der Sprache.
Bearbeiten:
Glücklicherweise ist das Gegenteil nicht erlaubt - Sie können eine statische Methode nicht aus einem Objektkontext aufrufen. Wie Jack weiter unten ausgeführt hat, können Sie eine statische Methode von einem aufrufen Objektkontext - kaum eine Best Practice im OOP-Paradigma, aber es ist erlaubt.
Nicht sicher, wahrscheinlich einige PHP-Magie (es ist manchmal ein bisschen so), aber Sie sollten es nicht tun.
Lesen Sie hier mehr Ссылка
Sie zeigen auch ein ähnliches Beispiel, aber beachten Sie:
Beim Aufruf von nicht statischen Methoden wird statisch eine E_STRICT-Warnung generiert, was bedeutet, dass diese magische Fähigkeit in zukünftigen Versionen verschwinden kann. Also tu es nicht:)