以下脚本发出了一个问题 '警告:range()[function.range]:步骤超出''中的指定范围 仅在调用date_diff函数时。有谁知道为什么?
<?php
$array = array(
"Interno",
"id"
);
$step = count($array) - 1;
foreach (range(0, $step) as $number) {
echo '<p>'.$number.'</p>';
}
$datetime1 = new DateTime('2010-08-2');
$datetime2 = new DateTime('2009-07-30');
$interval = date_diff($datetime1,$datetime2);
?>
答案 0 :(得分:1)
答案 1 :(得分:0)
嗯,这两个功能彼此无关。
其次,range
的第二个参数不是一个步骤,它是一个最大值(请参阅range
docs ...因此,如果您收到step exceeds the specified range
错误,我就是d猜测默认步长值1
大于范围的最大值(count($array) - 1
的结果)...我不确定为什么会在你的代码中发生这种情况,但这是一个开始< / p>
答案 2 :(得分:0)
我同意ircmaxell,函数范围和 date_diff 不相关,不以任何方式进行交互。问题应该在你的数组中以某种方式改变。 此外,对我来说,您的示例包含不必要的操作,例如计数和范围,并且可以缩短为:
<?php
$array = array(
"Interno",
"id"
);
foreach ($array as $number => $value) {
echo '<p>'.$number.'</p>';
}
$datetime1 = new DateTime('2010-08-2');
$datetime2 = new DateTime('2009-07-30');
$interval = date_diff($datetime1,$datetime2);
?>