Die foreach(); Schleife
Sie möchten alle globalen Variablen per PHP auslesen, wissen aber nicht wie viele es sind und wie diese heißen? Kein Problem mit der foreach(); Schleife.
In folgendem Beispiel lernen sie die foreach(); Schleife besser kennen:
- foreach($_GET as $key=>$value){
- echo „.$key.„ -> „.$value.„<br>„;
- }
- foreach($_POST as $key=>$value){
- echo „.$key.„ -> „.$value.„<br>„;
- }
- foreach($_SESSION as $key=>$value){
- echo „.$key.„ -> „.$value.„<br>„;
- }
- ?>
Nun zu der Erklärung:
foreach(); ist wie folgt aufgebaut:
1. Variante: foreach(array_expression as $value) Anweisung
2. Variante: foreach(array_expression as $key => $value) Anweisung
Die erste Form durchläuft das array_expression-Array. Bei jedem Durchgang wird der Wert des aktuellen Elements $value zugewiesen und der interne Array-Zeiger um eins erhöht. Dadurch wird beim nächsten Durchgang automatisch das nächste Element ausgewertet.
Die zweite Form arbeitet genauso, außer dass bei jedem Durchlauf auch der aktuelle Schlüssel der Variablen $key zugewiesen wird.
Noch 3 Anmerkungen dazu:
1. Sobald foreach zum ersten Mal ausgeführt wird, wird der interne Array-Pointer automatisch auf das erste Element des Arrays zurück gesetzt. Das bedeutet, dass Sie vor einem Durchlauf von foreach reset() nicht aufrufen müssen.
2. Beachten Sie auch, dass foreach mit einer Kopie des angegebenen Arrays arbeitet, nicht mit dem Array selbst. Deshalb wird auch der Array-Pointer nicht wie bei dem each()-Konstrukt verändert und Veränderungen an ausgegebenen Arrayelementen haben keine Auswirkung auf das originale Array. Trotzdem wird der interne Arrayzeiger des originalen Arrays bei der Verarbeitung bewegt. Angenommen, die foreach-Schleife ist komplett abgearbeitet, wird der interne Arrayzeiger (des originalen Arrays) auf das letzte Element zeigen.
3. Fehlermeldungen durch den Gebrauch von ‚@‘ zu unterdrücken ist bei foreach nicht möglich.