Forum und email

for

לולאות for הן הלולאות הכי מורכבות ב-PHP. הן דומות למקבילותיהן בשפת C. התחביר של לולאת for הוא:

for (expr1; expr2; expr3) statement

הביטוי הראשון (expr1) מוערך (מורץ) פעם אחת בלבד וללא תנאים בתחילת הלולאה.

בתחילת כל איטרציה expr2 מוערך. אם ערכו שווה ל-TRUE, הלולאה תמשיך והפקודות שבלולאה יופעלו. אם הביטוי מוערך ל-FALSE, הלולאה מסתיימת.

בתחילת כל איטרציה מורץ הביטוי expr3.

כל אחד מהביטויים יכול להיות גם ביטוי ריק (חסר). כאשר expr2 ריק, הלולאה תרוץ לעד ( PHP מחשיבה אותו כביטוי ריק כמו בשפת C ). עובדה זו אינה חסרת תועלת לחלוטין היות וניתן לעצור לולאה אינסופית כזו בעזרת פקודת break מותנית במקום ההמתנה לביטוי שערכו FALSE.

הדוגמאות הבאות מציגות את המספרים בין 1 ל-10:

/* 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 יכול להיות שימושי במצבים רבים.

PHP תומכת גם בתחביר הנקודותיים האלטרנטיבי בלולאות for:

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

בשפות שונות קיימת לולאת foreach שרצות לאורך מערך. ב-PHP 3 לא קיימת פקודה כזו. ב-PHP 4 קיימת פקודה זו (ראה foreach למידע נוסף). ב-PHP 3 ניתן לבצע דבר דומה על-ידי שימוש בלולאת while והפונקציות list() ו-each(). ניתן למצוא דוגמאות בתיעוד של פונקציות אלו.