php for循环形成数组,PHP:for循环后数组值发生变化

我知道这个标题看起来很奇怪,但这正是我遇到的情况

我创建了一个函数,它需要DateTime和integer并返回日期的array,这是我的代码:

public static function generateAfterDate(\DateTime $from, $number){

$days = array();

array_push($days, $from);

for($i = 1; $i <= $number; $i++){

$from = $from->modify('+1 day');

$days[] = $from;

var_dump($days[$i]->format('d/m/Y'));//---The first var_dump

}

foreach ($days as $day){

var_dump($day->format('d/m/Y'));//--The second var_dump

}

die;

return $days;

}

generateAfterDate(new \DateTime(), 7);正如你所看到的,我将同一个数组用于var_dump数据,并得到两个不同的结果:

第一个给了我这个:

string(10) "22/10/2017" string(10) "23/10/2017" string(10) "24/10/2017" string(10) "25/10/2017" string(10) "26/10/2017" string(10) "27/10/2017" string(10) "28/10/2017"第二个给了我这个结果:

string(10) "28/10/2017" string(10) "28/10/2017" string(10) "28/10/2017" string(10) "28/10/2017" string(10) "28/10/2017" string(10) "28/10/2017" string(10) "28/10/2017" string(10) "28/10/2017"有人可以解释这个吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值