for

for loops zijn de meest complexe loops in PHP . Ze gedragen zich net als de for-loops in C . De syntax van een for loop is :






De eerste expressie ( expr1 ) wordt exact één keer uitgevoerd aan het begin van de loop .

Aan het begin van elke iteratie wordt expr2 geevalueerd . Als deze evalueert tot TRUE , dan gaat de loop verder en worden de geneste statements uitgevoerd . De execute van de loop stopt als de expressie evalueert tot FALSE .

Aan het einde van elke iteratie wordt expr3 uitgevoerd .

Elk van de drie expressies mag leeg zijn . Als expr2 leeg is dan betekend dat dat de loop oneindig zal lopen ( PHP neemt aan dat als de tweede expressie leeg is , de expressie de waarde TRUE heeft , net als in C ) . Dit is niet zo nutteloos als je zult denken , het is immers mogelijk dat de loop wordt onderbroken met een conditioneel break statement in plaats van het gebruik van een waarheidsexpressie .

Neem de volgende voorbeelden . Elk van deze zal de nummers 1 tot 10 afdrukken :

 
/*

 
voorbeeld

 
1

 
*

 
/

 
for

 
(

 
$i

 
=

 
1

 
;

 
$i

 
=

 
10

 
;

 
$i++

 
)

 
{

 
print

 
$i

 
;

 
}

 
/

 
*

 
voorbeeld

 
2

 
*

 
/

 
for

 
($i

 
=

 
1;;$i++

 
)

 
{

 
if

 
($i

 
10

 
)

 
{

 
break

 
;

 
    }

 
print

 
$i

 
;

 
}

 
/

 
*

 
voorbeeld

 
3

 
*

 
/

 
$i

 
=

 
1

 
;

 
for

 
(;

 
;

 
)

 
{

 
if

 
($i

 
10

 
)

 
{

 
break

 
;

 
    }

 
print

 
$i

 
;

 
$i++

 
;

 
}

 
/

 
*

 
voorbeeld

 
4

 
*

 
/

 
for

 
($i

 
=

 
1

 
;

 
$i

 
=

 
10

 
;

 
print

 
$i

 
,

 
$i++

 
)

 
;





Natuurlijk lijkt het eerste voorbeeld het netste ( of misschien het vierde ) , maar je zult zien dat het leeglaten van expressie in de for loops toch vaak handig kan zijn .

PHP heeft ook een " dubbele punt syntax " voor for loops .






Andere talen hebben een foreach Andere talen hebben een foreach statement voor het doorlopen van een array of hash . PHP 3 heeft niet zo' n constructie ; PHP 4 heeft deze wel (zie foreach ) . In PHP 3 kun je hetzelfde resultaat bereiken door een while met een list( ) en een each( ) functie te combineren . Zie de documentatie bij deze functies voor een voorbeeld .