Как я могу напечатать $ title1 $ title2 $ title3 ... используя цикл for в PHP - PullRequest
2 голосов
/ 04 сентября 2011

Я хочу напечатать эти переменные, используя цикл for:

<?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
}
?>

Ответы [ 2 ]

11 голосов
/ 04 сентября 2011

Чтобы сделать именно то, что вы хотите, создайте новую переменную, содержащую имя переменной, которую вы хотите использовать, а затем используйте ее в качестве переменной переменной, например:

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

Однако, чем большеправильный способ сделать это - использовать массив вместо десяти различных переменных.

$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];
}

Это быстрее, чище и часто может быть более безопасным.

3 голосов
/ 04 сентября 2011

Вы можете заключить строку в {}. Это говорит PHP, чтобы использовать эту строку в качестве имени переменной.

for ($i = 1; $i <= 10; $i++) {  
  echo ${'title'.$i};
}
...