[OOP] Methode "test" kann nicht erstellt werden, da Konstruktor finit ist

Parantatatam

mag Cookies & Kekse
Hallo Gemeinde,

PHP hat mir gerade ein großes Rätsel gestellt und zwar in Form dieser Meldung:
Fatal error: Cannot override final App\XtModel::__construct() with App\Test::test()

Ich werde daraus nicht schlau, denn folgendes ist dazu zu sagen: andere Methoden kann ich problemlos erstellen, nur darf sie nicht genau den Namen "test" (oder "Test" oder "TeSt" etc.) tragen. Was für mich an dieser Sache unklar ist, ist, dass ich vorher keine Methode "test" definiert habe und wie die Finitheit des Konstruktors daran hängt.

Zu den Klassen: XtModel hat einen finiten Konstruktor und Test erbt von XtModel.
 
Wenn die Klasse bereits Test heißt, dann ist die Methode Test ebenfalls ein Konstruktor davon. Es könnte hier zu kollissionen kommen. Hab das ganze aber noch nie gestestet. Kann hier also nur raten.
 
Nein, aber mir ist gerade aufgefallen, dass PHP 5.3.2 einen Bug enthält, welcher dazu führt, dass Klassen in Namespaces Methoden, die wie die Klasse heißen, als Konstruktor erkennen, so wie es unter PHP 4 üblich war. Der Bug wurde aber unter PHP 5.3.3 behoben. So kann es eben auch sein. Trotzdem ein großes Danke an euch beiden.
 
Zurück