我现在说一下我的文件结构
index.php---
include("templete.php");//$tmp_block在该文件中储存
include("db_sql.php");//循环语句在这里储存,并且以一个函数coc_infolist(......)include("info.php");//调用函数信息,传递参数却出查询结果同时在函数内部完成模板循环<?=coc_infolist($tmp_block,'ecms_photo',12,$photo_cid)?>
现在可以确定,可以正常查询出结果,直接循环模板没有问题
while($info_arr=$empire->fetch($result)) 

  $info_list.= <LI> 
<div class='se_block_frm'> 
  <DIV class='se_block'> 
  <div class='se_image' style='float:right'> <IMG alt='".$info_arr[title]."' src='".$info_arr[titlepic]."' /> <A 
  href='".$art_link."'> </A> </div> 
  <a class='se_title' href='".$art_link."'>".$info_arr[title]." </a> <br /> <span class='se_info'>".$info_arr[smalltext]." </span> <br /> <br /> <span class='se_time'>".$info_arr[newstime]." </span>  </DIV> 
</div> 
</LI>";
  

但是靠函数传递模板模板可以循环,而数组元素无法循环(例如$info_arr[title])

解决方案 »

  1.   

    应该是传递模板参数$tmp_block,有问题,使得循环时无法识别数组元素
      

  2.   

    数组的各个键值不是这样表示的,要用引号括住:
    数组元素的访问是:
    $array['example'];//这里要有引号括住索引
    ,楼主把这个地方改为:
    $videozb=" <LI> <div class='se_block_frm'>  <DIV class='se_block'>  <div class='se_image' style='float:right'> <IMG alt='".$info_arr['title']."' src=".$info_arr['titlepic']." /> <A href='".$art_link."'> </A> </div>  <a class='se_title' href='".$art_link."'>".$info_arr['title']." </a> <br /> <span class='se_info'>".$info_arr['smalltext']." </span> <br /> <br /> <span class='se_time'>".$info_arr['newstime']." </span> </DIV> </div> </LI>";
      

  3.   

    搞错了是:
    $tmp_block=" <LI>
    <div class='se_block_frm'>
      <DIV class='se_block'>
      <div class='se_image' style='float:right'> <IMG alt='".$info_arr['title']."' src=".$info_arr['titlepic']." /> <A
      href='".$art_link."'> </A> </div>
      <a class='se_title' href='".$art_link."'>".$info_arr['title']." </a> <br /> <span class='se_info'>".$info_arr['smalltext']." </span> <br /> <br /> <span class='se_time'>".$info_arr['newstime']." </span>  </DIV>
    </div>
    </LI>"; 
      

  4.   

    这是我自己测试的一段代码, 
    $video=" <a class='se_title' href=''>".$info_arr['title']." </a>"; function abc($videozb) 
    { $info_arr['title']=123; 
      echo $videozb; 

    abc($video); 竟然没有结果
      

  5.   

    原来楼主是这个问题,那肯定有问题,在调用abc函数前,你已经为$video赋值了,并且$info_arr['title']是空值(或其他),就算在函数里修改了$info_arr['title']的值,$video的结果依然是之前赋值的结果,不会改变的,就像这个代码:
    <?php
    $example = 'abcdefgh';
    $e ="0".$example."0";//$e值为:0abcdefgh0
    function abc($videozb)
    {
    $example=123;//改了$example的值,$videozb依然是调用函数前的$e值
    echo $videozb;//输出也就是调用函数前的$e值
    }
    abc($e);//参数值:0abcdefgh0
    ?>