hotti: Constructor in einer Methode der Klasse erneut aufrufen?

Beitrag lesen

hi Tom,

Nicht die Konstruktor-Methode liefert die Instanz, sie wird aufgrund des Operators new erzeugt.

Ah, verstehe. In PHP wird die Instanz mit new() erzeugt, nicht jedoch mit dem Konstruktor. Danke für die Info.

Wie läuft denn eine Instantiierung deiner Meinung nach ab?

der Sven hat zwar gesgt, ich soll meine Fresse halten, aber weil Du's bist:

In c++ und in Perl wird die Instanz der Klasse mit dem Konstruktor erzeugt. In beiden Programmiersprachen gibt es auch den Destruktor. Mein c++ liegt schon etwas länger zurück, daher ein bischen mehr zu Perl: Der Konstruktor als Klassenmethode kann den Namen 'new()' kriegen, der Name kann aber auch anders lauten. In Perl-Klassen, die Variablen binden, heißen die Konstruktoren TIEHASH, TIEARRAY oder TIESCALAR, je nachdem. Der Destruktor jedoch heißt immer DESTROY und in meinen Modulen bekommt der auch immer was zu tun *G. Meiner Meinung nach ergibt das alles auch einen Sinn.

Des Weiteren macht es in Perl auch gelegentlich Sinn, den Konstruktor so zu programmieren, dass dessen Aufruf über eine bereits erzeugte Instanz einen Clone zurückgibt, in diesem Fall erwartet der Konstruktor entweder den Namen der Klasse oder er ermittelt den Namen der Klasse selbst anhand der übergebenen Instanz. Ergo ist der Konstruktor in Perl keine Instanz(Objekt)-Methode, auch dann nicht, wenn er eine Instanz übergeben bekommt: Aus dieser wird lediglich der Name der Klasse ermittelt.

Dass der Kontruktor in PHP eine völlig andere Bedeutung hat, wusste ich bis gestern tatsächlich nicht. Möglich, dass der POST aus meiner Unkenntnis heraus für Verwirrung gesorgt hat, letzeres war aber nicht meine Absicht und PHP sorgt selbst für genügend Verwirrung, was die Anzahl der Anfragen hier belegen.

Allen PHP-Fuzzies wünsche ich viel Spaß bei der Arbeit ;)

Hotti