Neden böyle bişeye ihtiyaç duyulur anlamadım ki. Değerler değişken yerine dizide tutulamıyo mu? Değişkenlerin değerlerinin nasıl oluştuğunu da yazarsan çözüm bulmak daha kolay olur.

Değişken sayısı ve isimler sabitse ve değerler illa değişkenlerde tutulcaksa compact() bi ihtimal çözüm olabilir ama döngüye gircek değer neden değişkene atanır anlayamadım.

<?php 
$date1="aaaa";
$date2="bbbb";
$date3="cccc";
$date4="dddd";
$arr = compact("date1","date2","date3","date4");
foreach( $arr as $v ){ echo $v."<br/>"; }
?>