На первый взгляд, я думаю, вы можете получить то, что я пытаюсь сделать. Я хочу закодировать переменные с тем же именем, но с числовым префиксом. У меня также была некоторая путаница в отношении того цикла, который я должен использовать, но не уверен, что цикл «для» будет работать. Единственное, что я не могу оборачивать, как php может интерпретировать «на лету» или сфабрикованную переменную. В некоторых проблемах появилась строка со знаком доллара. Заранее спасибо!
$hello1 = "hello1"; $hello2 = "hello2"; $hello3 = "hello3"; $hello4 = "hello4"; $hello5 = "hello5"; $hello6 = "hello6"; $hello7 = "hello7"; $hello8 = "hello8"; $hello9 = "hello9"; $hello10 = "hello10"; for ( $counter = 1; $counter <= 10; $counter += 1) { echo $hello . $counter . "<br>"; }
Попробуйте ${"hello" . $counter}
${"hello" . $counter}
$a = "hell"; $b = "o"; $hello = "world"; echo ${$a . $b}; // output: world
Обычно это неодобрительно, так как это делает код намного сложнее читать и следовать, но вы можете фактически использовать значение одной переменной в качестве имени другой переменной:
$foo = "bar"; $baz = "foo"; echo $$baz; // will print "bar" $foofoo = "qux"; echo ${$baz . 'foo'}; // will print "qux"
Для получения дополнительной информации см. Документацию PHP по переменным Variables .
Однако, как я уже упоминал, это может привести к очень сложному для чтения кодексу. Вы уверены, что не можете просто использовать массив?
$hello = array( "hello1", "hello2", // ... etc ); for($hello as $item) { echo $item . "<br>"; }
Вы можете использовать переменные переменные как:
for ( $counter = 1; $counter <= 10; $counter += 1) { echo ${'hello' . $counter } , '<br>'; }