re
Hm, komisch. Ich kann mir kaum vorstellen, dass sich beim Versionswechsel von 5.0.3 auf 5.0.4 soviel getan hat.
Ich auch nicht.
Hast du bereits mal versucht, die Schleife ebenfalls zu verändern? Also:
while(($file = readdir($this->handle)) !== FALSE)
Was passiert dann bei dir?
Dann gibt die Funktion in jedem Fall ein leeres Array zurück ohne, dass sich PHP beschwert.
Erst wenn ich beim return auch noch das $this weglasse, dann erhalte ich ein gefülltes Array. Was ja dann auch logisch ist. Allerdings wird damit immer noch nicht $instanceOfDir2Array->_files gefüllt.
(Jetzt komm mir nicht mit dem Argument, dass $_files private ist. :-) Ich hab mir $instanceOfDir2Array mit print_r()/var_dump() angesehen.)
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.
Außerdem, finde ich, fehlt in deinen Quelltext eine Einrückungsebene. Der gesamte Klasseninnenraum müsste einen Tabulator (oder eine Anzahl Leerzeichen) nach rechts.
dedlfix
Glossar:
stino : stinknormal