2

I want to print these variables using a for loop:

<?php
$title1 = "TEXT1";
$title2 = "TEXT2";
$title3 = "TEXT3";
$title4 = "TEXT4";
$title5 = "TEXT5";

for ($i = 1; $i <= 10; $i++) {    
  echo "$title".$i;   // I want this: TEXT1 TEXT2 TEXT3 TEXT4 TEXT5
}
?>
Jeremy
  • 1
  • 85
  • 340
  • 366
user918672
  • 21
  • 1
  • 1
    Thats' called [variable variables](http://php.net/manual/en/language.variables.variable.php). See @Jeremy Banks answer. – feeela Sep 03 '11 at 23:01

2 Answers2

11

To do exactly what you want, create a new variable containing the name of the variable you want to use, and then use it as a variable variable, like this:

$varname = "title$i";
echo $$varname;

However, the more correct way to do this is to use an array, instead of ten different variables.

$titles = array(
    "TEXT1",
    "TEXT2",
    "TEXT3",
    "TEXT4",
    "TEXT5"
);

for ($i = 0; $i < count($titles) - 1; $i++) { // notice that we're starting at 0 instead of 1
    echo $title[$i];
}

This is faster, cleaner and can often be more secure.

Jeremy
  • 1
  • 85
  • 340
  • 366
3

You can wrap the string in {}. This tells PHP to use that string as a variable name.

for ($i = 1; $i <= 10; $i++) {  
  echo ${'title'.$i};
}
Jeremy
  • 1
  • 85
  • 340
  • 366
gen_Eric
  • 223,194
  • 41
  • 299
  • 337