Hi!
re
An diese Art der Begrüßung muss ich mich noch gewöhnen ;-)
Mir geht es bei meiner Frage vor allem darum, was der Unterschied ist, wenn ich einmal schreibe $this->file oder $file. Sind das zwei verschiedene Variablen?
Das behaupte ich immer noch, solange ich das nicht anhand einer nachvollziehbaren Testbedingung (eindeutige Konfigurationsparameter) widerlegt bekomme.
$file ist innerhalb von Dir2Array::browse() eine lokale Variable - so wie das auch in Stino-Funktionen der Fall ist - und $this->file ist die Klassenvariable der aktuellen Instanz.
Wobei sich mir die Frage stellt, warum du $file und $_files überhaupt als Klassenvariablen deklarierst und sie dann nur lokal verwendest. Es sei denn, deine Klasse hat noch ein paar mehr Methoden, die du hier nicht zitiert hast.
Jetzt lüftet sich das ganze :-) Vor lauter OOP verliert man leicht den Überblick über das Altbewährte. Ich habe vollkommen vergessen, dass $file und $_files ja eigentlich nur innerhalb der Methode browse() verkommen. Demnach ist es - wie du auch bemerkt hast - unsinnig, $file und $_files als Klassenvariablen der aktuellen Instanz zu deklarieren. Sie sollten einfach innerhalb der Methode browse() deklariert werden... Ich habe den Wald vor lauter Bäumen nicht gesehen.
Eine kleine Frage hätte ich da aber noch: Ich dachte, man kann mit dem 'Scope Resolution Operator' (::) nur auf statische Variablen und Methoden zugreifen. Du verwendest jetzt jedoch Dir2Array::browse() - darf man das so einfach machen, immerhin handelt es sich dabei um eine als public deklarierte Methode?
Außerdem, finde ich, fehlt in deinen Quelltext eine Einrückungsebene. Der gesamte Klasseninnenraum müsste einen Tabulator (oder eine Anzahl Leerzeichen) nach rechts.
Das hatte er eigentlich auch, nur die Forumsoftware hat diese Einrückungen auf nur ein oder zwei Zeichen verkürzt. Damit mein Code ordentlich formatiert ist, sorgt im übrigen Eclipse mit dem PHP-Plugin. Bisher hatte ich ja Bluefish bzw. Quanta benutzt, aber ein Debugger gleich beim Entwickeln ohne sich erst das betreffende Skript im Browser anzuschauen müssen, ist ziemlich praktisch und erleichtert das Arbeiten ungemein.
Grüße,
Fabian St.
---------------------
fabi@erde ~# whatis spam
spam: nothing appropriate
---------------------
Selfcode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:( ss:) de:> js:| ch:? mo:) zu:)