Στην PHP 4 (και οχι στην PHP 3) συμπεριλαμβάνεται η δομή foreach , όπως στην Perl και σε μερικές άλλες γλώσσες. Αυτό απλά δίνει έναν εύκολο τρόπο να προσπελαύνετε τους πίνακες (arrays). Η foreach χρησιμοποιείται μόνο με πίνακες, και θα εμφανιστεί λάθος αν προσπαθήσετε να τη χρησιμοποιήσετε σε μια μεταβλητή διαφορετικού τύπου ή σε μια μεταβλητή που δεν έχει αρχικοποιηθεί. Υπάρχουν δυο τρόποι σύνταξης. Ο δεύτερος είναι μια ελάχιστη αλλά πολύ σημαντική βελτίωση του πρώτου:
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement |
Η πρώτη φόρμα προσπελαύνει τον array σύμφωνα με την array_expression. Σε κάθε loop, η τιμή του τρέχοντος στοιχείου ανατίθεται στην $value και ο εσωτερικός δείκτης του πίνακα αυξάνεται κατά ένα (έτσι ώστε στο επόμενο loop, θα μπορείτε να δείτε το επόμενο στοιχείο).
Η δεύτερη φόρμα κάνει το ίδιο πράγμα, εκτός από το ότι το τρέχον στοιχείο του κλειδιού θα ανατίθεται στη μεταβλητή $key σε κάθε loop.
Óçìåßùóç: Όταν η foreach αρχίζει αρχικά να εκτελείται, ο εσωτερικός δείκτης του πίνακα αυτόματα πηγαίνει στο πρώτο στοιχείο του πίνακα. Αυτό σημαίνει ότι δεν χρειάζεται να καλέσετε τη συνάρτηση reset() πριν από κάθε foreach loop.
Óçìåßùóç: Επίσης, σημειώστε ότι η foreach εκτελείται σε ένα αντίγραφο του συγκεκριμένου πίνακα, όχι στον ίδιο τον πίνακα, συνεπώς ο δείκτης του πίνακα δεν αλλάζει όπως με τη δομή each() και αλλαγές στο στοιχείο του πίνακα που επιστρέφεται δεν επηρεάζουν τον αρχικό πίνακα. Παρόλαυτα, ο εσωτερικός δείκτης του αρχικού πίνακα αυξάνεται καθώς επεξεργαζόμαστε τον πίνακα. Υποθέτοντας ότι το foreach loop ολοκληρώνεται, ο εσωτερικός δείκτης του πίνακα θα είναι στο τέλος του πίνακα.
Óçìåßùóç: Η foreach δεν υποστηρίζει τη δυνατότητα να καταστείλει τα μηνύματα λάθους χρησιμοποιώντας το '@'.
Ίσως έχετε παρατηρήσει ότι τα ακόλουθα έχουν την ίδια λειτουργία:
<?php |
<?php |
Μερικά ακόμη παραδείγματα για να καταλάβετε τη χρήση:
<?php |