dedlfix: Arrays sortieren

Beitrag lesen

Hi!

Es ist ein Vorstellungsmodell.
Das Vorstellungsmodell als verkette Liste kommt der tatsächlichen Funktionalität und Bedienbarkeit am nächsten.

Für mich fühlt es sich eher wie ein Array an, so als ob die Elemente direkt hintereinander liegen. Dass sie in ungeordneter Reihenfolge im Speicher lägen und nur über einen wie auch immer gearteten Mechanismus verbunden wären, kann ich weder von außen sehen, noch kann ich ihn in irgendeiner Form nutzen.

Man kann zu einem aktuellen Element der aktiven Liste den Vorgänger und den Nachfolger ermitteln.

Ja, wenn man einen Zeiger oder eine Referenz auf das Element hat, kann man das bei einer verketteten Liste. Das ist das entscheidende Merkmal einer solchen. Bei PHP geht das nicht. Man kann Referenzen auf beliebige Elemente legen, aber den Vorgänger oder Nachfolger kann man davon ausgehend nicht ermitteln. Ergo bringt die Vorstellung einer Verkettung keine Punkte. Es gibt lediglich einen Arrayzeiger, den man vom Anfang oder Ende her vorwärts oder rückwärts bewegen kann. Es ist nicht möglich, in der Mitte einzusteigen, was bei einer verketteten Liste ginge, wenn man einen Verweis auf ein Element hat.

Die Besonderheit bei PHPs Arrays ist, dass die Elemente beliebigen Typs sein können, damit auch ihre Größe beliebig sein kann und man ihre Position nicht selbst berechnen kann. Somit ergibt sich dann das Bild einer Hashtabelle: Über Keys kann man auf die Elemente zugreifen. Wie das intern gelöst ist, spielt für das Verständnis keine Rolle.

Das ist dann, auch geschichtlich nachvollziehbar für andere Interpreter-Programmiersprachen, eine Alternative zur objektorientierten Programmierung.

Was Historie und Objektorientierung damit zu tun haben, erschließt sich mir nicht.

Das "Feeling" ist schon sehr objektorierentiert,

Das kann ich gleich gar nicht nachvollziehen. Objektorientiert heißt, dass sich alles am Objekt orientiert. Selbiges steht im Mittelpunkt und davon abhängig sind die Bearbeitungsverfahren. Das sieht man auch an der Syntax, dass die Eigenschaften und Methoden dem Objekt oder seiner Klasse untergeordnet sind und man nicht selbständigen Funktionen auf der einen Seite und ebensolche Variablen auf der anderen Seite hat, die erst beim Funktionsaufruf zusammenkommen, falls der Compiler sie lässt.

weswegen ich ja immer sage, dass entweder Interpreter mit gekapselten Baukästen und Runtimesystem, oder OOP mit Objekten (schlussendlich bis auf Prozessorebene durchkompilierbar), aber nicht beides mischen...

Auch hier kann ich keinen Bezug zum Thema sehen. Es fällt mir auch schwer, den Sinn dahinter zu entdecken.

Lo!