【问题标题】:is it posible to auto increment variable name after a while loop?是否可以在while循环后自动增加变量名?
【发布时间】:2016-11-24 22:34:39
【问题描述】:

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

PHP 代码

$var1 = get_input('myvar1');
$var2 = get_input('myvar2');
$var3 = get_input('myvar3');
$var4 = get_input('myvar4');
...
$var30 = get_input('myvar30');

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

【问题讨论】:

  • 也许你应该考虑使用array,它是一大堆变量,存储为一个带有索引的名称。

标签: php


【解决方案1】:

我认为您正在处理这样的事情:

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

【讨论】:

    【解决方案2】:

    这是arrays的工作

    $var = array_fill(1, 30, 'myvar');
    

    使用数组键作为你的“id”

    【讨论】:

    • 不适用于 OP 的用例。数组值不仅仅是myvar,而是使用带有变量键的get_input函数获取
    • 我更喜欢 Dagon 的回答。
    • @khuderm 基于问题的描述“我需要创建一个包含一百个变量的 php 文件,除了它们的 id 之外,它们都是相同的。”它有效,我认为代码是失败的尝试。没有原生php函数get_input()
    • @Dagon 哈哈,很明显 OP 编写了一个名为 get_input() 的函数,它根据不同的键返回值。因此用myvar 填充数组不起作用。至于你引用的那篇文章,对我来说很明显他指的是变量名而不是值。
    • @Dagon 大声笑决定什么?他是否写了一个名为get_input()的函数?您可以清楚地看到每个变量都有不同的值,这些值使用不同的键从 get_input() 函数返回。当然,您的解决方案非常适合创建具有相同值的数组,但与我的解决方案或 @Max 的解决方案相比本质上更慢。 OP 仍然需要遍历数组以使用来自get_input() 的值填充它。因此,无论如何,当要替换阵列时,您会浪费资源预先填充阵列。有 0 个逻辑理由让 100 个不同的变量具有完全相同的值。
    【解决方案3】:

    既然可以像这样创建变量,为什么还要麻烦数组。变量名称也像值一样动态设置。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      相关资源
      最近更新 更多