Hello,
Anstelle einer rassereinen Funktion kannst Du auch eine mit Übergabeparametern bauen, die in Wirklichkeit Referenzen sind.
Sowas möchte man aber lieber vermeiden. Es macht den Code unübersichtlich.
Das ist mMn nicht wirklich unübersichtlich, aber in der Handhabung wird es umständlich. Man muss eben immer "vorbereiten", durchführen, prüfen, "nachbereiten". Die Daten liegen eben immer im Scope des ümhüllenden Programmteils (auf dem Heap) und müssen ggf. separat wieder entsorgt werden, wenn sie nicht mehr benötigt werden. Anders bei reinrassigen Funktionen. Da liegen die Antworten auf dem Stack und werden automatisch wieder entsorgt.
Ok, bei PHP kann das schon wieder etwas anders gehandhabt werden. Ist ja auch eine Interpreter-Sprache...
Aber als nächsten Entwicklungsschritt hat man ja deshlab die OOP ersonnen, die ich dennoch für Interpretersparachen als überskaliert betrachte. Aber das weißt Du ja. Aber die sorgt dann dafür, dass alle zum Objekt gehörenden Daten wieder verschwinden, wenn das Objekt aufgelöst wird.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg