Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php range()在使用日期差异时发出警告_Php - Fatal编程技术网

Php range()在使用日期差异时发出警告

Php range()在使用日期差异时发出警告,php,Php,下面的脚本发布了一个 '警告:范围()[function.range]:步骤超出了中的指定范围' 仅当调用date_diff函数时。有人知道为什么吗 <?php $array = array( "Interno", "id" ); $step = count($array) - 1; foreach (range(0, $step) as $number) { echo '<p>'.$number.'</p>'; } $date

下面的脚本发布了一个 '警告:范围()[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);
?>

好吧,这两个函数互不相关


其次,
range
的第二个参数不是一个步长,而是一个最大值(请参见……因此,如果您得到的
步长超过了指定的范围
错误,我猜默认步长值
1
大于范围的最大值(
计数($array)-1
)…我不确定代码中为什么会出现这种情况,但这只是一个开始

好吧,这两个函数之间没有任何关系


其次,
range
的第二个参数不是一个步长,而是一个最大值(请参见……因此,如果您得到的
步长超过了指定的范围
错误,我猜默认步长值
1
大于范围的最大值(
计数($array)-1
)…我不知道你的代码中为什么会出现这种情况,但这只是一个开始

我同意ircmaxell,functionrangedate\u 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);
?>

我同意ircmaxell,函数范围日期_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);
?>

这是一个PHP错误

从5.3.5开始仍然存在,似乎是在5.3.6中固定的

那是一个PHP错误

从5.3.5开始仍然存在,似乎是在5.3.6中固定的


在Win7和PHP5.3.3上对我很好。这段代码对我很好。而且
$step
在这里用词不当,这是最大值。您尝试过在第一次执行后重新加载页面吗?对我来说,可以,但只在第一次执行时。对我来说,这段代码对我很好。而
$step
是一个错误nomer在那里,这是最大值。你在第一次执行后尝试过重新加载页面吗?对我来说,它可以正常工作,但只在第一次执行。(count($array)-1)是1,所以范围(0,1)应该输出0 1。它是这样做的,但是如果我在同一页面中使用date_diff函数,我会得到警告,而没有输出。我猜(以及我为什么发布它)那是
$array
正在被更改。你发布的是你得到错误的确切代码吗?如果不是,请你发布准确的代码,因为我感觉除了你发布的代码之外还有其他事情在发生……好吧,这个问题是在一个小的cakephp应用程序中提出的。但是我隔离了“麻烦”代码和got相同的结果。这可能是PHP5.3.0的问题吗?为了清楚起见,是的,这正是我得到警告的代码。有很多。你应该升级到
5.3.3
…我在我的5.3.2安装中运行了很多次,每次都很好…(count($array)-1)是1,所以范围(0,1)应该输出0 1。它会这样做,但是如果我在同一页中使用date_diff函数,我会得到警告,并且没有输出。我的猜测(以及我为什么发布它)那是
$array
正在被更改。你发布的是你得到错误的确切代码吗?如果不是,请你发布准确的代码,因为我感觉除了你发布的代码之外还有其他事情在发生……好吧,这个问题是在一个小的cakephp应用程序中提出的。但是我隔离了“麻烦”代码和got相同的结果。这可能是php 5.3.0的问题吗?为了清楚起见,是的,这正是我得到警告的代码。有很多。你应该升级到
5.3.3
…我在5.3.2安装中运行了很多次,每次都运行得很好…嗯,是的。我之所以这样做是因为这是t的一部分他是蛋糕库的一员。我试着隔离代码来检查它是蛋糕问题还是php问题。出于某种原因,我仍然在隔离代码中编写警告消息。是的。我之所以这样写是因为这是蛋糕库的一部分。我试着隔离代码来检查它是蛋糕问题还是php问题。对于一些问题,我做了重新定义ason I仍然在隔离代码中对警告消息进行编码。