Вы не можете назначить $userDob
DateTime.Вы должны использовать его в вашем цикле.
//User dates of birth
$userDob = array("1995-07-27", "1985-07-27", "1975-07-27", "1965-07-27", "1955-07-27");
//Compare the user's date of birth with today's date.
$now = new DateTime();
//Display all ages
foreach($userDob as $date)
{
//Create a DateTime object using the user's date of birth.
$dob = new DateTime($date);
//Calculate the time difference between the two dates.
$difference = $now->diff($dob);
//Get the difference in years
echo $difference->y; //echo $age
}
EDIT
Лучше возвращать новый массив возрастов, чем эхо в этом цикле.А также я предлагаю использовать его как функцию с параметром для многократного использования.
function GetAges($user_ages)
{
$ages = [];
$now = new DateTime();
foreach($user_ages as $date)
{
$dob = new DateTime($date);
$difference = $now->diff($dob);
$ages[] = $difference->y;
}
return $ages;
}
, а затем использовать
$user_ages = ["1995-07-27", "1985-07-27", "1975-07-27", "1965-07-27", "1955-07-27"];
foreach(GetAges($user_ages) as $age)
{
echo $age . PHP_EOL;
}