Jein. Auch unter PHP5 lassen sich statische Methoden als Instanz-Methoden aufrufen und umgekehrt. Es gibt dabei nur eine E_STRICT-Notice. E_STRICT ist auch nicht in E_ALL enthalten und muss noch extra hinzugefügt werden, beispielsweise: error_reporting(E_ALL | E_STRICT);
aus kompatibilitätsgründen ist das möglich. aber das E_ steht für ERROR.
Beispiel: eine Datenbankklasse. Beim ersten singleton-Aufruf wird sie initialisiert und bei weiteren Aufrufen gibt's die bereits initialisierte Instanz zurück.
Wobei man auch noch eine statische Query-Methode hinzufügen könnte, die sich ihrerseits mit self::singleton() der Instanz bedienen kann.
(Ja, es gibt auch Anwendungsfälle, in denen man mehrere Datenbankverbindungen braucht. Dann ist der singleton-Einsatz nur begrenzt bis gar nicht geeignet.)
über "datenbankklassen" läßt sich prima diskutieren. die "üblichen" ansätze finde ich müll, da ich andere ansprüche stelle. hier unterscheiden sich die php und java leute sehr stark, da letztere mehr in schichten denken. meinen weg habe ich auf:
http://fanelf.de/Dokumentation/Persistenz.htm
mal als unvollständiges beispiel hingestellt.