PHP foreach配列サイクルのいくつかの問題

1660 ワード

リンクを開くと公式マニュアルforeachの紹介が開きます
 <?php
/*PHP foreach()                ,foreach()            ,                              。
 
  :
*/
foreach (array as $value)
statement
//   :
foreach (array as $key => $value)
statement
/*     ,              $value               。                               $key。
 
          for  ,  :*/
 
for($i = 0; $i < 3; $i++)
{
echo $arr[$i];
}
//                , foreach       ,          :
 
foreach ($arr as $value)
{
echo $value;
}
//        foreach        。
 
1.foreach         。
//     ,foreach($arr as $value)  $arr $value   ,       , 
 
$arr = array(0,1,2,3,4,5);
 
foreach($arr as $value){
$arr = array();
echo $value;
}
 
// 12345
//   $arr     ,      ,          
 
$arr = array(0,1,2,3,4,5);
$arr = &$arr;
foreach($arr as $value){
$arr = array();
echo $value;
}
// 0
/*        $arr         ,   copy   。
 
  $value   , $arr    ,       ,  $value          copy。*/
 
$arr = array(0,1,2,3,4,5);
foreach($arr as &$value){
$arr = array();
echo $value;
}
//    : 0
//          ,       $arr       ,$arr      :
 
global $arr;
$arr = array(0,1,2,3,4,5);
foreach($arr as $value){
$arr = array();
echo $value;
}
//    : 0
//2.           ,       
 
foreach($arr as &$value){}
foreach($arr as $value){}
 
//                。          :
 
view sourceprint?
//solution 1
foreach($arr as &$value){}
unset($value);
foreach($arr as $value){}
//solution 2
foreach($arr as &$value){}
foreach($arr as &$value){}
//solution 3
foreach($arr as &$value){}
$arr2 = $arr;
foreach($arr2 as $value){}
//3.  foreach       ,      foreach
 
 
foreach((array)$arr as $value) {}
?>