Создать 100 переменных в php с автоинкрементом - PullRequest
2 голосов
/ 29 февраля 2012

Мне нужно создать php-файл с сотней переменных, которые все идентичны, за исключением их идентификатора.

Код PHP

$myvar1 = get_input('myvar1');
$myvar2 = get_input('myvar2');
$myvar3 = get_input('myvar3');
$myvar4 = get_input('myvar4');
...
$myvar100 = get_input('myvar100');

Интересно, можно ли создать толькоодна строка как модель, и повторяется 100 раз?

Спасибо.

Ответы [ 5 ]

3 голосов
/ 29 февраля 2012

Просто сохраните его в массиве вместо 100 переменных:

$myvar = Array();
for ($i = 1; $i <= 100; ++$i) {
    $myvar[$i] = get_input('myvar' . $i);
}

Или, если вы хотите, чтобы индексы начинались с нуля:

$myvar = Array();
for ($i = 1; $i <= 100; ++$i) {
    $myvar[$i - 1] = get_input('myvar' . $i);
}
2 голосов
/ 29 февраля 2012

Вы действительно должны использовать массивы для этого, это гораздо более уместно:

$myvar = Array();
for($i=1;$i<101;$i++) $myvar[$i]=get_input("myvar{$i}"); // $myvar[1]=... etc...

В любом случае, возможно динамическое создание имен переменных (обратите внимание на '$$'):

for($i=1;$i<101;$i++){
        $varName="myvar{$i}";
        $$varName=get_input($varName);
}
1 голос
/ 29 февраля 2012

Похоже, вам просто нужен массив, массив прямо из внешней переменной.

если вы сделаете свое имя поля формы таким, как это

<input type="text" name="myvar[]">
<input type="text" name="myvar[]">
<input type="text" name="myvar[]">
<input type="text" name="myvar[]">

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

$myvar = $_POST['myvar'];
1 голос
/ 29 февраля 2012

вы можете хранить ваши переменные в массиве

$myvarArr = array();
for($i=0;i<100;i++) {
    $myvarArr[$i] = get_input('myvar' . ($i+1));
 }
0 голосов
/ 21 августа 2014

Просто чтобы показать, что это возможно, используйте переменные переменные (мне просто нравится эта функция PHP):

for ($i = 1; $i <= 100; $i++) {
    $varName = "myvar{$i}"; // create variable name
    $$varName = get_input("myvar{$i}"); // $$varName => $myvar5, when $i == 5 and so on
}
...