倾家荡产问个问题:在php4下运行好好的代码,,在php5中运行不了.看看简短代码..

dz863 2006-02-18 07:46:05
下面是一个双重循环.在php4中没问题,但是在php5中,它老人家只执行了一次就跳出去了.同时也问问象这样的双循环该怎么处理,个人感觉这样处理不太好..
谢谢..

function test()
{
global $DB,$DB2;
$DB3 = new db_driver();
$DB3 =$DB;
$DB->select('bigcat','*');
$i = 0;
while ($temp = $DB->fetch_array()) {
echo $i."<br>";
$DB3->select('smallcat','*');
$j = 0;
$i++;
while ($t = $DB3->fetch_array()) {
echo $j."<br>";
$j++;

}
}
}
...全文
208 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dz863 2006-02-20
  • 打赏
  • 举报
回复
对,我是怎么干的,但是还是出错。
假如不是以函数test()形式,而是以过程的显示出现,就能正确运行。
xuzuning 2006-02-20
  • 打赏
  • 举报
回复
$DB = new db_driver();
$DB2 = new db_driver();

function test() {
global $DB,$DB2;
$DB->select('bigcat','*');
$i = 0;
while ($temp = $DB->fetch_array()) {
echo $i."<br/>";
$DB2->select('smallcat','*');
$j = 0;
$i++;
while ($t = $DB3->fetch_array()) {
echo $j."<br/>";
$j++;
}
}
}
dz863 2006-02-20
  • 打赏
  • 举报
回复
xuzuning(唠叨)终于出面了
高手出手就是不一样.$DB3是$DB的引用,这循环中替代了$DB,循环一次跳了出去,这可以理解了.但是我用$DB2来替代$DB3,效果是一样的.
注:$DB2是事先构造好的类,并非是$DB的引用.同时他们都是全局变量.

假如这个问题不能解决,请大家给出个点子,告诉我这样设计这样的多重循环
xuzuning 2006-02-20
  • 打赏
  • 举报
回复
关于对象,php5始终传递引用

见手册中“关于引用”
helloyou0 2006-02-19
  • 打赏
  • 举报
回复
$DB3 = new db_driver();本来就是句废语句,加不加当然没影响。
dz863 2006-02-19
  • 打赏
  • 举报
回复
不管是否加 $DB3 = new db_driver();在php4都可以运行.
不管是否加它在php5下都不可以运行.
目的是用双重循环遍历数据库..
helloyou0 2006-02-19
  • 打赏
  • 举报
回复
是不是应该是:
$DB = new db_driver();


确认这段代码现在回到php4还可以运行?是否有改动自己没发现?
A_sr 2006-02-19
  • 打赏
  • 举报
回复
首先不知道你要完成什么功能,也就谈不上如何更好处理。
正如楼上所说$db3=$db,这句不知道你是做何用途,这样一来,$DB3与$DB就是一样的了。

数据库读取数据表,是不是有问题,这个就不知道了。还是好好看看程序本身吧~
dz863 2006-02-18
  • 打赏
  • 举报
回复
$DB3 = new db_driver();
去掉它一样的.
-神仙- 2006-02-18
  • 打赏
  • 举报
回复
$DB3 = new db_driver();
$DB3 =$DB;
这个不是废话么

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧