moin,
Genso so ruft man Klassenmethoden auf, mit dem
T_PAAMAYIM_NEKUDOTAYIM
, also dem doppelten Doppelpunkt. PHP verrät infolge dieser Fehlermeldung daß der Konstruktor eine Klassenmethode ist undnew
nur ein Wrapper (Fascade).Sry, nur zum mitschreiben: durch dieses
T_PAAMAYIM_NEKUDOTAYIM
Indiz leitest du ab, das__construct()
eine Klassenmethode sei,
Zum Erstellen einer Instanz braucht man eine Klassenmethode. Eine Klassenmethode wird über den Namen der Klasse aufgerufen, logisch denn die Instanz muss ja erst erstellt werden.
Insofern darf man __contruct()
auch als eine Klassenmethode betrachten. Wenn Du notierst
$f = new Foo($opts);
nimmt new
sogar den Namen der Klasse als Methode an, nämlich um die Argumente $opts
zu übergeben. Und wenn Du Dich an frühere PHP Versionen erinnerst:
class Foo{
function Foo($a){}
}
$f = new Foo(1,2,3);
findest Du genau diesen Sachverhalt wieder. Aber überlege doch mal selbst welche Methode Du als diejenige Klassenmethode bezeichnen würdest, welche die Instanz erstellt, Foo()
oder __construct()
oder new
?
Darüber lohnt es sich mal nachzudenken, es ist dem Verständnis für OOP sehr dienlich. MFG