【问题标题】:Create 100 variables in php with autoincrement使用自动增量在 php 中创建 100 个变量
【发布时间】:2024-05-18 08:35:02
【问题描述】:

我需要创建一个包含一百个变量的 php 文件,除了它们的 id 之外,它们都是相同的。

PHP 代码

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

我想知道是否可以只创建一条线作为模型,并复制 100 次?

谢谢。

【问题讨论】:

  • 为什么不用数组?这正是数组的用途,包含一组值。
  • 您好 Felix,我对数组不熟悉!?
  • 你可以做到,但出于道德目的,我个人不会回答如何做,因为正如@FelixKling 所说 - 这就是数组存在的原因。
  • 我也看不出这背后的目的......

标签: php variables count auto-increment


【解决方案1】:

只需将其存储在一个数组中,而不是 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);
}

【讨论】:

  • 这个array 对你有什么做错了1 的起始索引? :(
  • @jperovic,对不起,我不太明白你的问题。你的意思是?您可以使用它,以便索引与输入名称匹配(因此 get_input('myvar', 13) 将存储在 $myvar[13] 中),或者如果您不需要它们与输入名称匹配,您可以从零开始索引。
  • 抱歉,如果您这样做是为了将索引与myvar 匹配,那也没关系。 :)
【解决方案2】:

您可以将变量存储在数组中

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

【讨论】:

    【解决方案3】:

    您确实必须为此使用数组,它更合适:

    $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);
    }
    

    【讨论】:

      【解决方案4】:

      看起来你只需要一个数组,一个来自外部变量的数组。

      如果您将表单字段名称设为这样

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

      您可以通过简单的代码轻松获取所有值

      $myvar = $_POST['myvar'];
      

      【讨论】:

      • 我给了这个 +1,因为这是很好的实用建议,在某些类似于 OP 的情况下肯定会适用,所以这对于浏览此页面的人来说很有用。但请注意,原始发帖人是从get_input(...) 获取数据,而不是从$_POST,所以这个答案可能不适用于这种特殊情况。
      【解决方案5】:

      只是为了表明,使用可变变量是可能的(我就是喜欢这个 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
      }
      

      【讨论】: