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