Home > Software engineering >  PHP uses references in for-loop
PHP uses references in for-loop

Time:11-10

I am looping through a for-loop to fill an array with dates. With each iteration I want to increase the date variable by one day.

$myDate = date_create(date_default_timezone_get());
$myArr;
for ($i = 0; $i <= 1; $i  ) {
    $myArr[$i] = $myDate;
    $myDate->modify(' 1 day');
}

What it returns to me if the current date is 06-November-2021:

echo date_format($myArr[0], 'd.m.Y'); //08.11.2021
echo date_format($myArr[1], 'd.m.Y'); //08.11.2021

I would expect that it returns 06.11.2021 and 07.11.2021 but it seems it uses some kind of references instead of values in my array. Can someone explain?

CodePudding user response:

you should create a new date and assign it to array try this

<?php
$myDate = date_create(date_default_timezone_get());
$myArr;
for ($i = 0; $i <= 4; $i  ) {
    $myArr[$i] = date_create(date_format($myDate,'d.m.Y'));
    $myDate->modify(' 1 day');
}

echo "<pre>";
print_r($myArr);
echo "</pre>";
?>

result

enter image description here

  • Related