请问带有html代码的变量通过函数参数的形式传入的函数内部使用时,会不会有什么变化 这个是源帖,朋友看看,谢谢了http://topic.csdn.net/u/20090105/15/a6b7497f-0eea-42a9-b9a6-a076f58a3c3f.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $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>"; 这是我自己测试的一段代码,$video="<a class='se_title' href=''>".$info_arr['title']."</a>";function abc($videozb){ $info_arr['title']=123; echo $videozb;}abc($video);竟然没有结果 原来楼主是这个问题,那肯定有问题,在调用abc函数前,你已经为$video赋值了,并且$info_arr['title']是空值(或其他),就算在函数里修改了$info_arr['title']的值,$video的结果依然是之前赋值的结果,不会改变的,就像这个代码:<?php$example = 'abcdefgh';$e ="0".$example."0";//$e值为:0abcdefgh0function abc($videozb){$example=123;//改了$example的值,$videozb依然是调用函数前的$e值echo $videozb;//输出也就是调用函数前的$e值}abc($e);//参数值:0abcdefgh0?> 可是为什么会这样呢,又设么方法可以解决吗,如果把 <a class='se_title' href=''>".$info_arr['title']." </a>"; 直接拿到函数里,却可以被成功赋值,这个是当然的,难道是PHP有规定, 这个是程序执行顺序问题,什么编程语言都是这样的,不只是PHP,C、Java等都是这样的。 你应该看一下局部变量和全局变量的问题。你在函数里把$info_arr声明为全局变量就可以了。 如果我没理解错的话$video=" <a class='se_title' href=''>".$info_arr['title']." </a>";这个在赋值时已经把$info_arr['title']当成了空,所以传递到函数里的是<a class='se_title' href=''></a>";因为我的模板都储存在外部的变量里,都要通过参数来传入函数内部请问朋友说的函数里赋值是什么意思,举个例子,麻烦了,刚学 耶?自己的帖子都不能改啊?我说错了,不是变量范围的问题。变量进函数之前就已经被赋值了,之后你又没重新赋值,所以才会这样。听gingzai777 的吧,没错~ 例如,楼主刚给的代码:$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']这个变量就可以了,先后顺序变变。 请教EAN13条码号怎么生成?懂的师傅进来教一下。 请问这个论坛是什么架构哦,访问量大速度这么快 PHP压缩多个文件? php循环判断文件后缀 不让用户注册中文名怎么控制? 求助。。。。。。。。 Hybrid App? 怎么设定数据库的关键字的? 如何在PHP中运用DES或RAS加/解字符串 请大神们帮帮忙 PHP读取文本文件后统计数据问题 请问我为什么无法获得循环结果
<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>";
$video="<a class='se_title' href=''>".$info_arr['title']."</a>";function abc($videozb)
{ $info_arr['title']=123;
echo $videozb;
}
abc($video);竟然没有结果
<?php
$example = 'abcdefgh';
$e ="0".$example."0";//$e值为:0abcdefgh0
function abc($videozb)
{
$example=123;//改了$example的值,$videozb依然是调用函数前的$e值
echo $videozb;//输出也就是调用函数前的$e值
}
abc($e);//参数值:0abcdefgh0
?>
如果把
<a class='se_title' href=''>".$info_arr['title']." </a>";
直接拿到函数里,却可以被成功赋值,这个是当然的,难道是PHP有规定,
你在函数里把$info_arr声明为全局变量就可以了。
$video=" <a class='se_title' href=''>".$info_arr['title']." </a>";
这个在赋值时已经把$info_arr['title']当成了空,所以传递到函数里的是
<a class='se_title' href=''></a>";
因为我的模板都储存在外部的变量里,都要通过参数来传入函数内部
请问朋友说的函数里赋值是什么意思,举个例子,麻烦了,刚学
我说错了,不是变量范围的问题。变量进函数之前就已经被赋值了,之后你又没重新赋值,所以才会这样。
听gingzai777 的吧,没错~
$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']这个变量就可以了,先后顺序变变。