| 

.NET C# Java Javascript Exception

3
Ich verstehe in einer fremden PHP-Datei folgenden Code nicht.

foreach ($user_list as $user => $pass)

$user_list, $user und $pass wurden nicht spezifiziert! Jedenfalls seh ich es nicht.

Kann mir jemand erklären was da passiert?
11.08.2009
paulk 63 1 4
3 Antworten
8
Eines der in PHP verfügbaren Schleifenkonstrukte ist foreach. Foreach kann verwendet werden, um alle Inhalte eines Arrays zu durchlaufen. Dabei existieren zwei Syntaxvarianten:

  • foreach (array_expression as $value)
    statement
    Bei dieser Variante wird, beginnend beim ersten Eintrag, bei jedem Schleifendurchlauf der aktuelle Inhalt des Arrays array_expression an $value zugewiesen und der interne Arraypointer um eins erhöht.

  • foreach (array_expression as $key => $value)
    statement
    Diese Variante ist zur ersten identisch. Hierbei wird lediglich zusätzlich der aktuelle Schlüsselwert an $key zugewiesen.


Seit PHP5 kann foreach auch auf Objekte angewendet werden und iteriert dort über die Eigenschaften des Objektes. Bei Variante2 enthält $key in dem Fall jeweils den Namen der Eigenschaft.

In deinem speziellen Fall wird das Array $user_list durchlaufen und nacheinander der Schlüsselwert an $user und der Arrayinhalt an $pass zugewiesen.
11.08.2009
FalkP 3,2k 2 8
1
danke dir
paulk 16.08.2009
2
Häufige Fehlerquelle bei => ist das verwechseln mit >= aus dem IF-Abfragen.

Es gibt zum Beispiel niemals ein "Gleich-Größer" (=>) aber Problemlos ein "Größer-Gleich" (>=).

Nur so als Anmerkung. ;-)
08.09.2009
Martin Bassus 486 7
1
Ergänzung:

der => stellt einen allgemeinen Array-Operator dar, um einem bestimmten Index auf schnelle weise einen Wert zuzuordnen.

Das betrifft neben den genannten Foreach-Schleifen auch allgemein alle Arrays.

So kannst Du ein Array mit Indizes und Werten initialisieren:

$arr = Array('idx1' => 'val1', 'idx2' => 'val2' ... );


führt im ergebnis zu:
$arr['idx1'] == 'val1'
$arr['idx2'] == 'val2'


usw.
08.09.2009
MiW 1,0k 7

Stelle deine Php-Frage jetzt!