while

(PHP 4, PHP 5, PHP 7, PHP 8)

while-Schleifen sind der einfachste Typ von Schleifen in PHP. Sie verhalten sich wie ihre Pendants in C. Die Grundform einer while-Schleife ist:

while (bedingung)
    anweisung

Die Bedeutung einer while-Schleife ist simpel. Die Schleife weist PHP an, die untergeordnete(n) Anweisung(en) wiederholt auszuführen, solange die while-Bedingung zutrifft. Die Bedingung wird jedes Mal am Anfang der Schleife überprüft, Das bedeutet, dass die Ausführung der untergeordneten Anweisungen nicht stoppt, auch wenn sich der Wahrheitsgehalt der Bedingung zwischendurch ändert (jedes Mal, wenn PHP die Anweisungen ausführt, handelt es sich um eine Runde). Wenn die while-Bedingung von Anfang an nicht zutrifft, werden die untergeordneten Anweisung nicht ein einziges Mal ausgeführt.

Wie bei if-Abfragen können mehrere Statements innerhalb der selben Schleife mit geschleiften Klammern oder mithilfe der alternativen Syntax gruppiert werden:

while (bedingung):
    anweisung
    ...
endwhile;

Die folgenden Beispiele sind identisch und geben die Zahlen von 1 bis 10 aus:

<?php
/* Beispiel 1 */

$i = 1;
while (
$i <= 10) {
echo
$i++; /* der ausgegebene Wert ist $i bevor
er erhöht wird (post-increment) */
}

/* Beispiel 2 */

$i = 1;
while (
$i <= 10):
echo
$i;
$i++;
endwhile;
?>

add a note

User Contributed Notes 3 notes

up
-16
razvan_bc at yahoo dot com
1 year ago
assuming you want to have another way to archieve
<?php

for($i=10;$i>0;$i--){
echo
$i.'<br>';
}

?>

then yo have this:

<?php

$v
=10;
do{
echo
$v.'<br>';
}while(--
$v);

/*
while(--$v) : 10...1 , when $v==0 stops
*/

?>
up
-44
Dan Liebner
3 years ago
While loops don't require a code block (statement).

<?php

while( ++$i < 10 ); // look ma, no brackets!

echo $i; // 10

?>
up
-45
mparsa1372 at gmail dot com
3 years ago
The example below displays the numbers from 1 to 5:

<?php
$x
= 1;

while(
$x <= 5) {
echo
"The number is: $x <br>";
$x++;
}
?>

This example counts to 100 by tens:

<?php
$x
= 0;

while(
$x <= 100) {
echo
"The number is: $x <br>";
$x+=10;
}
?>
To Top