我在php中有以下代码:
foreach($lines as $num=>value){
fixIndex();
if ($num <$i)continue;
function fixIndex(){
static $i=0;
static $j=1;
if($j-$i==60)$i=$i=$i+60;
$j++;
return $i;
}
运行程序时没有错误。但$i似乎没有影响。当我将其更改为数字时,即 60,它将根据需要跳过 60 条记录。谁能帮我解决这个问题?提前谢谢。
对我来说完全错误和奇怪:
首先 - 这就足够了:
$i += 60; or $i = $i + 60; //you wrote $i=$i=$i+60
第二 - 使用(始终(
{} and paragraphs like this
if ($j-$i==60) {
//body here
}
这不是必需的
return $i;
因为您使用静态 var(也不建议这样做(。如果将函数的结果分配给变量,则返回是正确的,即
$i = fixIndex();
此条件从不满足
if($j-$i==60)
因为在此之上,您每次都$i和$j初始化变量
static $i=0;
static $j=1;
1 - 0 != 60,永远不会!
首先,
我对类型错误感到抱歉。真的是
if($j-$i==60)$i=$i+60;
$J++;
我同意返回$i; 是没有必要的。 foreach 循环还有更多代码要遵循,这就是为什么 } 还没有看到。根据手册,静态仅设置$i和$j一次。当函数退出时。$j递增 1。所以在 60 次调用该函数之后。应该发生$j-$i==60。那时$i应该受到影响并更改为60。我真正的问题是更改 fixIndex 函数后 60 增量$j的 $i 的值。 有什么帮助吗?非常感谢您的及时回答。如果我对这个问题解释得不够清楚,请指出来。谢谢大家。
您有语法错误value
$value
而且没有}
试试这个
foreach($lines as $num=>$value){
fixIndex();
if ($num <$i)continue;
}
function fixIndex(){
static $i=0;
static $j=1;
if($j-$i==60)$i=$i=$i+60;
$j++;
return $i;
}