Search code examples
phploopsvariablesconcatenationvariable-variables

Declare variable variables using static string and counter variable in a loop


How do I create variable variables inside a for loop?

This is the loop:

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

}

Inside this loop, I would like to create a variable $seat for each time it passes but it has to increment like so. first time it passes it should be $seat1 = $_POST['seat' + $aantalZitjesBestellen], next time it passes: $seat2 = $_POST['seat' + $aantalZitjesBestellen] and so on.

At the end, it should be:

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

and so on.

The variable and the content of the $_POST should be dynamic.


Solution

  • Firstly, I would use an array for this unless I'm missing something. Having variables like $seat1, $seat2, etc tends to have far less utility and be far more cumbersome than using an array.

    That being said, use this syntax:

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

    Lastly, PHP has an inbuilt function for extracting array keys into the symbol table: extract(). extract() has enormous potential security problems if you use it with unfiltered user input (eg $_POST) so use with caution.