BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #5493同步于 2008/12/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

[合集] 关于函数内部的变量作用域的问题!!!急

tntzwz
2008/12/21镜像同步0 回复
☆─────────────────────────────────────☆ rzsp8552 (spooky) 于 (Tue Sep 16 23:54:58 2008) 提到: <?php function test(){ $coupon_result = mysql_query("select merchant,discount,url,srcsite from coupon"); $result = mysql_query("select id,name,address,discount,intro,url,price,phone,comment,srcsite,menu,coupon,class from cate_dining $where"); while($row = mysql_fetch_array($result)){ $y=1; while($coupon_row = mysql_fetch_array($coupon_result)){ $y=2; } } } ?> 请问下上面这段代码出现赋值不成功的问题。问题描述如下: 1、当$y=1这行注释掉的时候能够正常执行$y=2这个代码; 2、当$y=1这行存在时,$y=2不起作用。 3、当代码变成下面的时,也可以真正确执行---既把第二个while循环的条件改成变量值。 <?php function test(){ $coupon_result = mysql_query("select merchant,discount,url,srcsite from coupon"); $result = mysql_query("select id,name,address,discount,intro,url,price,phone,comment,srcsite,menu,coupon,class from cate_dining $where"); while($row = mysql_fetch_array($result)){ $y=1; $loop=1; while($loop){ $y=2; $loop=0; } } } ?> 考虑过数据库的可能返回空值的问题,但是经过测试“注释掉$y=1这行,并添加变量计算返回的$coupon_result个数,得出的结果是正确的” 问题好奇怪,大牛们帮帮忙啊!先谢谢了 ☆─────────────────────────────────────☆ xw2423 (静水之人) 于 (Wed Sep 17 00:17:34 2008) 提到: 你的第一段代码相当于 <?php function test(){ $coupon_result = mysql_query("select merchant,discount,url,srcsite from coupon"); $result = mysql_query("select id,name,address,discount,intro,url,price,phone,comment,srcsite,menu,coupon,class from cate_dining $where"); $loop=1; while($row = mysql_fetch_array($result)){ $y=1; while($loop){ $y=2; $loop=0; } } } ?> 当然了,$result需要有两条以上的记录 PS:当mysql_fetch_array($res)返回false时,再次调用mysql_fetch_array($res)也返回false 【 在 rzsp8552 (spooky) 的大作中提到: 】 : <?php : function test(){ : $coupon_result = mysql_query("select merchant,discount,url,srcsite from coupon"); : ................... ☆─────────────────────────────────────☆ rzsp8552 (spooky) 于 (Wed Sep 17 20:20:34 2008) 提到: 那应该是重复调用while($coupon_row = mysql_fetch_array($coupon_result)这个语句的问题?是不是调用一次之后指针就指向末尾了,要是想重复多个while需要怎么把指针指回第一个元素呢 ☆─────────────────────────────────────☆ xw2423 (静水之人) 于 (Wed Sep 17 21:57:18 2008) 提到: mysql_data_seek($res,0); 【 在 rzsp8552 (spooky) 的大作中提到: 】 : 那应该是重复调用while($coupon_row = mysql_fetch_array($coupon_result)这个语句的问题?是不是调用一次之后指针就指向末尾了,要是想重复多个while需要怎么把指针指回第一个元素呢
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。