Forum und email

for

Τα for loops είναι τα πιο περίπλοκα loops στην PHP. Συμπεριφέρονται όπως τα αντίστοιχα κομμάτια της C. Η σύνταξη ενός for loop είναι:

for (expr1; expr2; expr3) statement

Η πρώτη έκφραση (expr1) εκτελείται χωρίς να λάβουμε υπόψη κάποια συνθήκη στην αρχή του loop.

Στην αρχή κάθε επανάληψης, η expr2 υπολογίζεται. Αν πάρει την τιμή TRUE, το loop συνεχίζει και οι εμφωλευμένες εντολές εκτελούνται. Αν πάρει την τιμή FALSE, η εκτέλεση του loop σταματά.

Στο τέλος κάθε επανάληψης, υπολογίζεται η τιμή της expr3.

Κάθε μια από τις εκφράσεις μπορεί να είναι κενή. Αν η expr2 είναι κενή σημαίνει πως το loop θα εκτελείται ατέρμονα (η PHP αυτόματα θεωρεί πως έχει την τιμή TRUE, όπως και στη C). Αυτό δεν είναι τόσο άχρηστο όσο φαίνεται αφού συχνά θέλουμε να τερματίζουμε ένα loop χρησιμοποιώντας μια σε υποθέση (condition) break δήλωση αντί να χρησιμοποιήσουμε την truth έκφραση της for .

Θεωρείστε τα ακόλουθα παραδείγματα. Όλα εμφανίζουν αριθμούς από το 1 ως το 10:

<?php
/* example 1 */

for ($i 1$i <= 10$i++) {
    print 
$i;
}

/* example 2 */

for ($i 1; ; $i++) {
    if (
$i 10) {
        break;
    }
    print 
$i;
}

/* example 3 */

$i 1;
for (;;) {
    if (
$i 10) {
        break;
    }
    print 
$i;
    
$i++;
}

/* example 4 */

for ($i 1$i <= 10; print $i$i++);
?>

Φυσικά, το πρώτο παράδειγμα είναι το καλύτερο (ή ίσως το τέταρτο), αλλά ίσως δείτε πως έχοντας τη δυνατότητα να χρησιμοποιείτε κενές εκφράσεις στα for loops είναι πολύ εύχρηστο σε πολλές περιπτώσεις.

Η PHP επίσης υποστηρίζει την εναλλακτική "σύνταξη με χρήση της άνω και κάτω τελείας" στα for loops.

for (expr1; expr2; expr3): statement; ...; endfor;

’λλες γλώσσες έχουν μια δήλωση foreach για να προσπελάσουν έναν array ή ένα hash. Η PHP 3 δεν έχει τέτοιες δομές; Η PHP 4 έχει (βλέπε foreach). Στην PHP 3, μπορείτε να συνδυάσετε το while με τη list() και την each() συνάρτηση προκειμένου να πετύχετε το ίδιο αποτέλεσμα. Δείτε το documentation γι'αυτές τις συναρτήσεις για παράδειγμα.