For循环保持返回相同的值

时间:2011-12-03 05:52:05

标签: php

使用For循环返回表中的所有行。它会正确地遍历每一行,但即使它已经进入下一行,也会保持返回相同的值。

以下代码:

function setLayer($result_set, $row){

    $str  = "MyMap_".mb_convert_encoding(mssql_result($result_set, $i, 0),"UTF-8","SJIS")."_".mb_convert_encoding(mssql_result($result_set, $i, 1),"UTF-8","SJIS");
    return "".$str." = new OpenLayers.Layer.WMS( \"".$str."\",\"http://192.168.0.69/cgi-bin/mapserv.exe?map=C:/ms4w/Apache/htdocs/mapserver/data/toyama/toyama_mymap.map&service=WMS&SRS=EPSG:2449&VERSION=1.1.1&format=image/PNG&layers=".$str."\", {'layers': '".$str."'},  {isBaseLayer: false, visibility: false,opacity:0.5,alpha:true});
    map.addLayer(".$str.");\n\n";
}

循环:

for($i=0; $i<=$group_layer_row; $i++){
    echo setLayer($rs_group_layer, $i);
}

我的理由是,尽管循环遍历了所有行,但$ str不会改变以反映另一行,所以尽管行值不同,它仍保持给出相同的值....关闭?

希望有人可以帮助我。谢谢。

2 个答案:

答案 0 :(得分:3)

您的功能接受$row,但在正文中您使用$i

答案 1 :(得分:0)

尝试在函数末尾添加return。
请考虑@Sylverdrag建议。