这个是源帖,朋友看看,谢谢了http://topic.csdn.net/u/20090105/15/a6b7497f-0eea-42a9-b9a6-a076f58a3c3f.html

解决方案 »

  1.   

    $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>"; 
    数组的各个键值不是这样表示的,要用引号括住:
    数组元素的访问是:$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>"; 
      

  2.   

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

  3.   

    原来楼主是这个问题,那肯定有问题,在调用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
    ?>
      

  4.   

    可是为什么会这样呢,又设么方法可以解决吗,
    如果把
     <a class='se_title' href=''>".$info_arr['title']." </a>"; 
    直接拿到函数里,却可以被成功赋值,这个是当然的,难道是PHP有规定,
      

  5.   

    这个是程序执行顺序问题,什么编程语言都是这样的,不只是PHP,C、Java等都是这样的。
      

  6.   

    你应该看一下局部变量和全局变量的问题。
    你在函数里把$info_arr声明为全局变量就可以了。
      

  7.   

    如果我没理解错的话
    $video=" <a class='se_title' href=''>".$info_arr['title']." </a>";
    这个在赋值时已经把$info_arr['title']当成了空,所以传递到函数里的是
    <a class='se_title' href=''></a>";
    因为我的模板都储存在外部的变量里,都要通过参数来传入函数内部
    请问朋友说的函数里赋值是什么意思,举个例子,麻烦了,刚学
      

  8.   

    耶?自己的帖子都不能改啊?
    我说错了,不是变量范围的问题。变量进函数之前就已经被赋值了,之后你又没重新赋值,所以才会这样。
    听gingzai777 的吧,没错~
      

  9.   

    例如,楼主刚给的代码:
    $video=" <a class='se_title' href=''>".$info_arr['title']." </a>";
    function abc($videozb)
    { $info_arr['title']=123;
      echo $videozb;
    }
    abc($video); 
    你可以在函数内,改为:
    $video=" <a class='se_title' href=''>".$info_arr['title']." </a>";
    function abc($videozb)
    {
    $info_arr['title']=123;
    $videozb=" <a class='se_title' href=''>".$info_arr['title']." </a>";
    echo $videozb;
    }
    abc(); 要不你也可以改改顺序:$info_arr['title']=123;
    $video=" <a class='se_title' href=''>".$info_arr['title']." </a>";
    直接这样不是好些吗,在引用外部前,定义好$info_arr['title']这个变量就可以了,先后顺序变变。