开发者

variable variables

开发者 https://www.devze.com 2023-01-12 16:27 出处:网络
how do i create variable variables inside a for loop? this is the loop: for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) {

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 incrementlike so. first time it passes it should be $seat1 = $_POST['seat'+$aantalZitjesBestellen], next time it passes: $seat2 = $_开发者_如何转开发POST['seat'+$aantalZitjesBestellen] and so on.

so at the end it should be:

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

and so on.

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


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.


This will work as well:

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


(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.


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.


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

0

精彩评论

暂无评论...
验证码 换一张
取 消