Подтвердить что ты не робот

Переменные 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", но это не удалось.

любой совет?

Как всегда,

4b9b3361

Ответ 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]);
}