Tach!
ps: ich nehme an das du
quack()
einfach nur zur demo hardcoded hast.
Du meinst $duck->quack()
? Nein, das habe ich so hingeschrieben, weil ich diese Methode aufrufen möchte und man das üblicherweise so macht. Ich muss nicht den Namen als String angeben oder andere Kopfstände machen, ich kann den ganz normal verwenden. Je nach Anforderung des Anwendungsfalls kann ich noch vor meinem Aufruf selbst prüfen, ob die Methode vorhanden ist, oder ich vertraue darauf und rufe sie einfach auf.
Es ist eines der Prinzipien von PHP, dass es zur Laufzeit das Objekt nimmt, das da grad in $duck liegt, dort schaut, ob es eine solche Methode hat, und die dann aufruft, oder eine Fehlermeldung ausgibt. Es arbeitet intern also auch nach den Duck-Type-Prinzip.
dedlfix.