当我突然与变量范围混淆时,我正在编写PHP。
如果我像这样循环......
function foo()
{
$ctr = 0;
for ($i = 0 ; $i > 8 ; $i++)
{
$ctr = $ctr + 1;
}
return $ctr;
}
$ ctr返回0。
但如果我像这样做循环......
function foo()
{
$collections = //This has 7 counts;
$ctr = 0;
foreach ($collections as $collection)
{
$ctr = $ctr + 1;
}
return $ctr;
}
CTR是退货7!
那么第一个循环中的问题是什么?
答案 0 :(得分:1)
你试图做的for循环似乎有点不对。
for ($i = 0 ; $i > 8 ; $i++)
^^^^^^
表示,将$ i设置为0.只要$ i大于8,执行此循环然后递增。
由于$ i设置为0,因此永远不会满足条件,因此永远不会执行循环。
更改$ i> 8到$ i< 8。
答案 1 :(得分:0)
您的循环条件:
for ($i = 0 ; $i > 8 ; $i++)
^^^^^^
由于循环从0
开始,你有0 > 8
,这是假的,你的循环立即终止。请记住,当第二个参数变为false时,循环终止。它必须为TRUE才能执行循环体。
答案 2 :(得分:0)
我必须说,第一个循环中的问题可能很难发现。
关于$ i> 8,你的代码甚至不进入循环。反转运算符,($ i = 0; $ i< 8; $ i ++)
这对我有用。