我知道標題看起來很奇怪,但這正是我遇到的情況。
我創建了一個funtion這需要DateTime
和integer
和返回日期的array
,這是我的代碼:
PHP:循環後數組的值發生了變化
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"
可有人請解釋一下嗎?
哦我現在看到了,謝謝你的解釋。 – SlimenTN