分配的变量在使用PHP的do while循环中不起作用

时间:2018-11-18 20:18:53

标签: php loops while-loop do-while

我正在我的项目中gem install rmagick的工作很好的第一次

Do While loop之前,我为数组分配了一个值,我能够在代码底部成功打印该数组,但在顶部检查时其变为0。循环

代码:

while statement

当我在其他地方打印时,但无法打印do循环的开始时,它显示的数组大小为0

3 个答案:

答案 0 :(得分:5)

我将忽略所有名称问题,但解决您的while循环问题:

$loopend =0;
do {
    ...
    if(membercount($asmallestsponid)<3) {
         $loopend = 1;
    }else{
      ...
    }
while ($loopend == 1);

有2个选项:

  1. 如果条件为 true :如果是,$loopend将得到1,所以循环 continue (似乎不合适,称他为“循环结束”,但无论如何...)

  2. 如果条件为 false :则$loopend保持不变(初始值为0),因此循环将停止

恕我直言-这将简化您的循环:

do {
    ...
while (membercount($asmallestsponid)<3);

答案 1 :(得分:0)

我们不知道membercount($asmallestsponid)会返回什么,但是(很可能)它在第一遍通过时就进入了

} else {
                $looparray = $arraymer;
                //print_r($looparray);
}

$loopend的值不变,即保持在0,并且在第一遍将01进行比较,并决定退出{{1 }}循环为do {} while

答案 2 :(得分:0)

您的代码有几个问题。首先,这什么都不做:

if (sizeof($looparray)==0) {
    $firstsponarray= $poolafirtsid;
} else {
    $firstsponarray= $looparray;
}

因为那段代码之后的下一行是:

$firstsponarray= getUserArray($poolafirtsid);

会覆盖$firstsponarray的所有先前分配。

第二,$looparray的值在do循环中根本没有改变,因此它将始终是一个空数组。我找到了这一行:

$rooparray=membercount($avalue);

我认为是错字,正确的行是$looparray=membercount($avalue);。与行$aarraylist[$avalue]=$rooparray;相同。但是,由于我在顶部描述的原因,更改$firstponarray也不会带来任何好处,因为$looparray永远不会等于spring: data: mongodb: uri: mongodb://localhost:27017/mongotest

尝试首先调试代码,如果问题仍然存在,请发布更新的代码。