【问题标题】:Set multiply parameters in a for-loop在 for 循环中设置乘法参数
【发布时间】:2013-10-21 02:38:22
【问题描述】:

我是 PHP 新手,我正在尝试将多个参数设置为相同的值。 我以(可能)丑陋的方式做到了。

$thpic0 = "thpic_dummy";
$thpic1 = "thpic_dummy";
$thpic2 = "thpic_dummy";
$thpic3 = "thpic_dummy";
etc...
$thpic13 = "thpic_dummy";
$thpic14 = "thpic_dummy";

由于唯一的字符变化是参数中的最后一个字符,我认为它可以在 for 循环中完成,但这(显然)不起作用:

//Reset th sorting pics
for($i=0;$i<=14;$i++)
{
$thpic{$i} = "thpic_dummy";
}

有没有其他方法可以在没有太多代码行的情况下做到这一点?

【问题讨论】:

  • 你为什么不使用array
  • 也许是XY problem?你真正想达到什么目标?
  • @pNre 他实际上使用了一个数组({…}[…] 的替代品)。 (信不信由你;用简单的$a = array("a"); var_dump($a{0}); 自己测试一下)
  • @bwoebi 是的,有时 php 真的很混乱。我想在这种情况下,答案只是访问值 $thpic[index] 而不是 $thpicindex
  • 哇!一个小时内有很多答案,这是寻求帮助的地方!

标签: php for-loop parameters


【解决方案1】:

你应该为这个任务使用任何数组

$thpic = array();
for($i=0;$i<=14;$i++)
{
    $thpic[$i] = "thpic_dummy";
}

echo $thpic[1];

【讨论】:

    【解决方案2】:

    你最好的办法是把它放到一个这样的数组中:

    for ($i = 0; $i <= 14; $i++) {
        $thpic[$i] = "thpic_dummy";
    }
    
    print_r($thpic);
    

    这会返回如下内容: 数组

    (
        [0] => thpic_dummy
        [1] => thpic_dummy
        [2] => thpic_dummy
        [3] => thpic_dummy
        [4] => thpic_dummy
        [5] => thpic_dummy
        [6] => thpic_dummy
        [7] => thpic_dummy
        [8] => thpic_dummy
        [9] => thpic_dummy
        [10] => thpic_dummy
        [11] => thpic_dummy
        [12] => thpic_dummy
        [13] => thpic_dummy
        [14] => thpic_dummy
    )
    

    你可以这样称呼:

    print $thpic[1]
    

    【讨论】:

    【解决方案3】:

    您可以使用 variable-variables 来实现您想要的:

    for($i=0;$i<=14;$i++)
    {
        $variable  = 'thpic' . $i;
        $$variable = "thpic_dummy";
    }
    

    您可以在文档中阅读有关这些的更多信息:http://php.net/manual/en/language.variables.variable.php

    或者,您可以使用语法:${"thpic" . $i} = "thpic_dummy";

    【讨论】:

      【解决方案4】:

      正确的语法是${…} 而不是$…{…}

      ${"thpic$i"} = ...;
      

      将是有效的语法。

      一些关于此的 PHP 手册讲座:http://php.net/language.variables.variable.php

      【讨论】:

      • 我认为arrays 更适合。
      • @u_mulder 是的,但这不是他的问题……
      猜你喜欢
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 2019-01-23
      • 2021-11-17
      • 2023-03-11
      • 2013-03-01
      相关资源
      最近更新 更多