我正在我的项目中gem install rmagick
的工作很好的第一次。
在Do While loop
之前,我为数组分配了一个值,我能够在代码底部成功打印该数组,但在顶部检查时其变为0。循环。
代码:
while statement
当我在其他地方打印时,但无法打印do循环的开始时,它显示的数组大小为0
答案 0 :(得分:5)
我将忽略所有名称问题,但解决您的while
循环问题:
$loopend =0;
do {
...
if(membercount($asmallestsponid)<3) {
$loopend = 1;
}else{
...
}
while ($loopend == 1);
有2个选项:
如果条件为 true :如果是,$loopend
将得到1,所以循环 continue (似乎不合适,称他为“循环结束”,但无论如何...)
如果条件为 false :则$loopend
保持不变(初始值为0),因此循环将停止
恕我直言-这将简化您的循环:
do {
...
while (membercount($asmallestsponid)<3);
答案 1 :(得分:0)
我们不知道membercount($asmallestsponid)
会返回什么,但是(很可能)它在第一遍通过时就进入了
} else {
$looparray = $arraymer;
//print_r($looparray);
}
$loopend
的值不变,即保持在0
,并且在第一遍将0
与1
进行比较,并决定退出{{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
。
尝试首先调试代码,如果问题仍然存在,请发布更新的代码。