переменные переменные

как создать переменные переменные внутри цикла for?

это цикл:

for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) { } 

внутри этого цикла я хотел бы создать переменную $ seat за каждый раз, когда она проходит, но она должна увеличиваться так. в первый раз он должен быть $seat1 = $_POST['seat'+$aantalZitjesBestellen] , в следующий раз он проходит: $seat2 = $_POST['seat'+$aantalZitjesBestellen] и так далее.

поэтому в конце это должно быть:

 $seat1 = $_POST['seat1']; $seat2 = $_POST['seat2']; 

и так далее.

поэтому переменная и содержимое $ _POST должны быть динамическими.

Во-первых, я бы использовал массив для этого, если я не упустил что-то. Наличие переменных, таких как $seat1 , $seat2 и т. $seat1 , $seat2 гораздо меньшую полезность и гораздо более громоздко, чем использование массива.

При этом используйте этот синтаксис:

 for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) { $key = 'seat' . $counter; $$key = $_POST[$key]; } 

Наконец, PHP имеет встроенную функцию для извлечения ключей массива в таблицу символов: extract() . extract() имеет огромные потенциальные проблемы безопасности, если вы используете его с нефильтрованным вводом пользователя (например, $_POST ), поэтому используйте с осторожностью.

Это также будет работать:

 for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) { ${'seat' . $counter} = $_POST['seat' . $counter]; } 

(Расширены для ясности – вы можете сделать однострочный)

 for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) { $varname = 'seat' . $counter; $$varname = $POST[$varname]; } 

НО ! Вы действительно не должны этого делать. (И если вы действительно должны, см. Ответ cletus для встроенного PHP-способа сделать это, это тоже считается плохой практикой).

Пересмотрите свою проблему и посмотрите, могут ли массивы быть решением (я думаю, это будет). Это упростит проверку (через, например, var_dump() ) итерацию и не загрязнит глобальное пространство переменных.

 for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) { $name = 'seat' . $counter; $$name = $_POST['seat' . $counter]; } 

Рекомендуется использовать массивы, так как вы можете проверить их проще.

Вы можете использовать экстракт, но я не рекомендую делать то, что вы пытаетесь сделать.