I would advise that you go with chris's array idea because it give you far more options.
However, (if I understand you correctly) you should try:
<?
for ($i = 1; $i <= 7; print "gift$i.", $i++) ;
$variable .= "gift$i";
print "gift_0";
?>
or are you trying to turn all the gift_0, gift_1 etc strings into variables? In which case,
${"gift_" . $i} = "value"; //would do nicely