【问题标题】:php make a variable with a variablephp用一个变量创建一个变量
【发布时间】:2011-05-04 18:19:14
【问题描述】:

我不确定这是否可行,但我有一个计数器变量,每次都会增加一。 现在我在计数器上方有几个变量,它们后面有一个数字,例如

$var1=...
$var2=...
$var3=...

现在在计数器内部,我希望变量后面的数字随着计数器变量的增加而增加...

很喜欢

for ( $counter = 1; $counter <= 3; $counter += 1) {
  $var=$var$counter;
}

我不想要的是一个字符串,我只想要一个变量后的数字,每次计数器变量增加一个时都会改变。

【问题讨论】:

    标签: php variables counter


    【解决方案1】:

    这称为variable variable。每当您考虑使用数组时,请意识到您应该使用数组。

    【讨论】:

    • 谢谢,但我现在不能使用数组,如果我更改了以前从网站获得的一些代码,我只想在更改之前测试一些东西:)
    • @mario — 这也是一个答案,因为它链接到解释如何执行所要求的操作的文档。
    【解决方案2】:

    不确定您所说的没有字符串是什么意思,但应该这样做。

    for ( $counter = 1; $counter <= 3; $counter += 1) {
       $varName = 'var' . $counter;
       $var=$$varName;
    }
    

    但我同意应该使用不同的方法(数组)。

    【讨论】:

      【解决方案3】:

      你想用这个做什么?

      我问是因为看起来你最好使用数组来实现你想要的。然后你可以这样做:

      for ( $counter = 1; $counter <= 3; $counter += 1) {
        $var[$counter] = $value;
      }
      

      【讨论】:

        【解决方案4】:

        您需要将该代码更改为:

        for ( $counter = 1; $counter <= 3; $counter += 1) {
          ${"var".$counter} = $var;
        }
        

        将字符串包裹在大括号中允许您使用它来动态创建变量名,因此我们只需将“var”与计数器值连接起来,然后将其用作新的变量名。

        但是,请注意,这样做会一路创建并初始化所有变量...所以在本例中,您最终会得到 $var、$var1 和 $var2 都等于相同值的结果。如果这不是您想要的,您将不得不 unset() 所有您不想要的变量。

        另外请注意,在大多数情况下,这并不是“最佳做法”。我可以问你为什么需要这样做吗?也许数组会更合适..

        【讨论】:

          【解决方案5】:

          您可以这样做,但不推荐

          看起来像这样:

          for ( $counter = 1; $counter <= 3; $counter += 1) {
              $var = ${'var' . $counter};
          }
          

          【讨论】:

          • 这行不通。您将 $var 设置为尚不存在的变量的值。相反,您想创建一个名称等于 $var 的新变量。您需要在赋值运算符周围翻转它们,就像我在回答中所做的那样。
          • @BraedenP - 你今天应该学习新东西。 PHP 是一种松散类型的语言。学习,年轻的天行者,学习。这是你的面包和黄油!
          猜你喜欢
          • 2012-03-21
          • 2016-02-29
          • 2012-04-19
          • 1970-01-01
          • 2016-02-25
          • 1970-01-01
          • 2019-07-31
          • 2011-02-26
          • 1970-01-01
          相关资源
          最近更新 更多