<?php
$a=1;
function test(){
global $a;
$a=1;
$a++;
$b=array(1,2,3,4,5,6,7);
return $b;
}
foreach(test() as $c){
echo $c;
}
echo $a;
?>
结果:12345672请按任意键继续. . .

解决方案 »

  1.   

    看来,在foreach中可以放心大胆的用函数,mysql_fetch_array()哪个能帮忙测试一下?
      

  2.   

    ......
    $sql='select id,name from user';
    $result=mysql_query($sql,conn);
    while($array=mysql_fetch_array($result))
    {
       $value_array[$array['id']]=$array['name'];
    }
    //print_r($value_array);
    foreach($value_array as $key => $value)
    {
       echo $key.' = '.$value.'<br>';
    }
      

  3.   

    没明白我的意思,
    $array=mysql_fetch_array(foo())
    其中的foo()为一函数,用来返回$resul
    foo(){
       $result=mysql_query("select *************************");
       return $result;
    }
    这里的foo()是否会被多次调用?还是只调用一次?
      

  4.   

    多次调用,
    mysql_fetch_array($link);
    $link只是一个数据库资源变量,包含资源号和偏移量等,每次取完数据库偏移量自动+1

    $link1
    $link2
    $rs=mysql_fetch_array($link1);//取link1第一条 link1偏移量+1
    $rs=mysql_fetch_array($link2);//去link2第一条 link2偏移量+1
    $rs=mysql_fetch_array($link1);//取link1第二条 link1偏移量+1
    $rs=mysql_fetch_array($link2);//去link2第二条 link2偏移量+1
    …………foreach也是类似。
    可以参考函数:mysql_data_seek -- 移动内部结果的指针
                  prev -- 将数组的内部指针倒回一位
                  next -- 讲数组的内部指针前进一位