variable variables

后端 未结 5 1054
醉话见心
醉话见心 2020-11-28 16:54

how do i create variable variables inside a for loop?

this is the loop:

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

}         


        
相关标签:
5条回答
  • 2020-11-28 17:18

    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.

    0 讨论(0)
  • 2020-11-28 17:33
    for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) {
       $name = 'seat' . $counter;
       $$name = $_POST['seat' . $counter];
    }
    

    It's recommended to use arrays, as you can check them easier.

    0 讨论(0)
  • 2020-11-28 17:35

    You can use extract but I don't recommended to do what you are trying to do.

    0 讨论(0)
  • 2020-11-28 17:41

    (Expanded for clarity - you may be able to do a one-liner)

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

    BUT! You really shouldn't do this. (And if you really must, see cletus' answer for the built-in PHP way to do it - this is considered bad practice too, though.)

    Reconsider your problem and see if arrays might be the solution (I guess it will). This will make both inspection (via e.g. var_dump()) and iteration easier and does not pollute the global variable space.

    0 讨论(0)
  • 2020-11-28 17:42

    This will work as well:

    for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) {
        ${'seat' . $counter} = $_POST['seat' . $counter];
    }
    
    0 讨论(0)
提交回复
热议问题