ich habe folgendes Problem, ich will das Ergebnis einer while schleife in eine Variable stecken weiß aber nicht wie. Ich weiß das es mit einem Array geht aber denn kann cih nicht so wieter verwenden wie ich das brauche.
Koennt ihr mir da ein paar tipps geben?
Was dabei rauskommen soll: Ich will einen Ordner auslesen und die datein auflisten aber um es richtig darstellen zu koennen (Templatesystem) muss ich das alles in einer Variable speichern. Ich hoffe das reicht als erklaerung. =)
Kannst du das jeweilige Template nicht direkt in der Schleife verarbeiten lassen? Oder nach der Schleife mit Array in einer foreach Schleife das Template ausgeben?
Andernfalls müsstest du eventuell das Template entsprechend anpassen, so dass es alle Elemente eines Arrays ausgibt (sprich: per Hand).
Das ist aber unsauber. PHP _darf_ laut Sprachdeffinition bei $tmp=( $fu=$bar() ) immer true annehmen. Der obere Ausdruck duerfte also durchaus true sein. Ganz egal was die Funktion $bar nun zurueckgibt.
Der obere Ausdruck duerfte also durchaus true sein. Ganz egal was die Funktion $bar nun zurueckgibt.
...
Was heißt dürfte? Wenn bar()false zurückgibt, ist - meines Wissens nach - auch ($foo = bar())false. Manchmal muss man eine Sprache auch zu ihrem Glück zwingen.
Was heißt dürfte? Wenn bar()false zurückgibt, ist - meines Wissens nach - auch ($foo = bar())false. Manchmal muss man eine Sprache auch zu ihrem Glück zwingen.
freundliche Grüße, Rolus
...
Es gibt sachen die man nicht macht. Wenn du dir die Doku durchblaetterst wirst du bei den neueren Eintraegen auch hin und wieder den Vermerk finden, dass man das so nicht macht. ^^
Es gibt sachen die man nicht macht. Wenn du dir die Doku durchblaetterst wirst du bei den neueren Eintraegen auch hin und wieder den Vermerk finden, dass man das so nicht macht. ^^
...
Hm, das habe ich noch nicht gelesen. Hast du vielleicht noch einen Link? Soweit ich weiß entspricht der Ausdrucks-Wert einer Funktion dem Rückgabewert (steht zumindest hier). Das heißt ($foo = bar()) entspricht ($foo = true), wenn bar()true zurückgibt. Im Manual wird zwar erklärt, dass while ($file = readdir($handle)) eigentlich while (false !== ($file = readdir($handle))) heißen sollte, aber das hat ja andere Gründe. Und der zweite Weg ist dann wohl auch falsch, wenn ($file = readdir($handle)) eh nicht false annimmt?
Warum lässt du das:
Durch implode() laufen? Kostet nur mehr Speed und vor allem Grösse in einer Datei..
dabei würde es das auch tun:
btw. vielleicht wäre auch eine eigene function auch nicht schlecht..
Die wäre dann zwar etwas mehr Code als obiges Beispiel, aber man weiss auf jedenfall wo man dran ist
Mal eine kleine Frage
Warum lässt du das:
Durch implode() laufen? Kostet nur mehr Speed und vor allem Grösse in einer Datei..
dabei würde es das auch tun:
...
Das koennte ich auch machen, werds warscheinlich auch tun. =)
Danke fuern den Hinweiß habe garnet mehr dran gedacht.
>> Habe grade festgestellt das Die Zweite Loesung doch nicht so gut ist wie fuer das was was ich vorhabe. D.h. ich bleib bei Implode. =)
$files würde ich vielleicht noch initialisieren, also einfach ein $files = array(); vor die Schleife setzen. Eigentlich sollte register_globals langsam überall aus sein, aber sicher ist sicher. Mit aktivierten register_globals und nicht gesetztem $files könnte man nämlich per Parameter an das Skript der Liste beliebige Dateien hinzufügen, was unter Umständen zu Sicherheitslecks führen könnte. Vielleicht in dem speziellen Fall nicht, aber es ist im Allgemeinen einfach besserer Stil, Variablen zu initialisieren.
So habs mal probiert und mir ist aufgefallen wenn ichs somache wie oben habe ich es ja immo noch nicht in einer Variable.
...
Wie meinst du das? Du hast die Dateinamen dann im Array $files. Das kannst du dann ausgeben. Zum Beispiel in einer Foreach-Schleife:
freundliche Grüße, Rolus
Aeh das ist ja das was ich nciht machen kann/will wegen dem Templatesystem.
Die Foreach schleife an sich ist ja ganz cool und klappt auch wunderbar nur will ich das was die schleife ausgibt nicht nach und nach unternander schreibt sondern nach und nach in einer Variable schreibt.
Ich hatte mal vor ein paar jahren gelsen das man Vraiblen auch erweitern kann mit einem Punkt, weiß aber nicht mehr wie das geht und wo das steht, weiß da jemand vlt was drueber?
Dann lies das ganze nicht in ein Array, sondern in einen String:oder alternativ doch in ein Array, welches du anschließend implodieren* lässtWobei das "" in implode() durch z.b. ", " austauschbar ist.
* Irgendwie ist das ein verdammt cooler Funktionsname.