include("Smarty_Inc.php"); $menu_arr=array();
$sql = "select * from `setclass` order by place asc, ID Desc";
$query=mysql_query($sql);
while($row = mysql_fetch_array($query)){
$menu_arr[] = array($row['ID'],$row['setname'],$row['pid'],$row['place']);
}
print_r($menu_arr); //在这里可以打印出数据function dafenglei_table($m,$id)
{
global $menu_arr;
print_r($menu_arr); //在这里得打印不出数据?
if($id=="") $id=0;
$n = str_pad('',$m,'-',STR_PAD_RIGHT);
$n = str_replace("-"," ",$n);
for($i=0;$i<count($menu_arr);$i++){
if($class_arr[$i][2]==$id){
$str=$str. "<tr>\n";
$str=$str. " <td height=28 bgcolor=\"#FFFFFF\">".$n."|—<a href=\"?action=edit&id=".$class_arr[$i][0]."\">".$class_arr[$i][1]."</a></td>\n";
$str=$str. " <td bgcolor=\"#FFFFFF\"><div align=\"center\">".$class_arr[$i][3]."</div></td>\n";
$str=$str. " </tr>\n";
dafenglei_table($m+1,$menu_arr[$i][0]);
}
echo $str;
}
}dafenglei_table(0,0);$smarty->assign("onearray",dafenglei_table(0,0));
$smarty->display("left.htm");print_r($menu_arr); 打印了两个地方,一个可以打印出来,调用的时候就不能打印呢
print_r($menu_arr); //在这里可以打印出数据#如果上面的$menu_arr有值,完全可以作为函数的参数
function dafenglei_table($m,$id,$menu_arr)
因为 dafenglei_table 没有返回值,也就无法向 onearray 赋值的
$smarty->assign("onearray",dafenglei_table(0,0));添加return:function dafenglei_table($m,$id)
{
global $menu_arr;
print_r($menu_arr); //在这里得打印不出数据?
if($id=="") $id=0;
$n = str_pad('',$m,'-',STR_PAD_RIGHT);
$n = str_replace("-"," ",$n);
for($i=0;$i<count($menu_arr);$i++){
if($class_arr[$i][2]==$id){
$str=$str. "<tr>\n";
$str=$str. " <td height=28 bgcolor=\"#FFFFFF\">".$n."|—<a href=\"?action=edit&id=".$class_arr[$i][0]."\">".$class_arr[$i][1]."</a></td>\n";
$str=$str. " <td bgcolor=\"#FFFFFF\"><div align=\"center\">".$class_arr[$i][3]."</div></td>\n";
$str=$str. " </tr>\n";
dafenglei_table($m+1,$menu_arr[$i][0]);
}
//echo $str; //这里会循环输出
}
return $str;
}
我按照你的说法单独做个php文件时没有问题的,smarty为什么忽略掉了呢