Переменные PHP - имя переменной объединения
У меня есть цикл PHP for:
for ($counter=0,$counter<=67,$counter++){
echo $counter;
$check="some value";
}
то, что я пытаюсь сделать, это использовать переменную for loop и добавить ее к имени другой переменной.
Баскиально, я хочу, чтобы выход PHP был следующим для каждой строки
1
$check1="some value"
2
$check2="some value"
3
$check3="some value"
4
$check4="some value"
etc etc
Как я могу это понять? я пропущу что-то очевидное?
Я пробовал $check.$counter="some value"
, но это не удалось.
любой совет?
Как всегда,
Ответы
Ответ 1
Правильный синтаксис переменных переменных :
${"check" . $counter} = "some value";
Однако я сильно обескураживаю. То, что вы пытаетесь выполнить, может, скорее всего, быть более элегантным, используя массивы. Пример использования:
// Setting values
$check = array();
for ($counter = 0; $counter <= 67; $counter++){
echo $counter;
$check[] = "some value";
}
// Iterating through the values
foreach($check as $value) {
echo $value;
}
Ответ 2
Это можно использовать в некоторых случаях. Например, если ваше приложение имеет что-то вроде двух языковых записей в БД.
echo $this->{'article_title_'.$language};
Это гораздо удобнее, чем, например, это:
if($language == 'mylanguage1')
echo $this->article_title_mylanguage1;
else
echo $this->article_title_mylanguage2;
Очевидно, это то, что вам не нужно делать в вашем многоязычном приложении, но я видел такие случаи.
Ответ 3
Вы должны использовать синтаксис ${'varname}:
for ($counter=0,$counter<=67,$counter++){
echo $counter;
${'check' . $counter} ="some value";
}
это сработает, но почему бы просто не использовать массив?
$check[$counter] = "some value";
Ответ 4
Массив выполнит это.
$check = array();
for($counter = 0; $counter <= 67; $counter++) {
$check[] = "some value";
var_dump($check[$counter]);
}