Sven Rautenberg: for und foreach

Beitrag lesen

Moin!

Gibt es einen Unterschied zwischen

for ($i = 0; $i < count($typname); $i++) {

echo $typname[$i];
    }


>   
> und  
>   
> ~~~php

    foreach ($typname as $value) {  

>        echo $value;  
>     }

?

Ja.

foreach bearbeitet alle Elemente des Arrays, in $value erhälst du eine Kopie des Arraywertes.

Die for-Schleife bearbeitet alle Arrayelemente mit Index von 0 bis count($typname)-1, unabhängig davon, ob diese Elemente tatsächlich existieren.

Nimm mal folgendes Szenario:

<?php  
  
error_reporting(E_ALL | E_STRICT);  
  
$typname = array(0=>'Index Null', 3=>'Index drei');  
  
echo "For\n";  
for ($i = 0; $i < count($typname); $i++) {  
  echo $typname[$i]."\n";  
}  
  
echo "Foreach\n";  
foreach ($typname as $value) {  
  echo $value."\n";  
}  

Ergebnis:

For  
Index Null  
  
Notice: Undefined offset:  1 in /root/test.php on line 9  
  
Foreach  
Index Null  
Index drei  

- Sven Rautenberg