【问题标题】:generate dynamic variable name in for loop php在for循环php中生成动态变量名
【发布时间】:2017-12-11 15:52:17
【问题描述】:

我正在尝试在 php for 循环中动态生成变量名。 我想在 for 循环中调用一个函数并想传递迭代值。 我尝试的是:

for ($i=1, $j=1; $i<=16 ; $i++, $j++) {
    $a='arrtreelevel_1';
    $b='0';
    $newname = $a.$j.$b;
    echo $newname,"<br>";
    echo $arrtreelevel_1[0];
    $arrtreelevel_2.$i = profiledetails($newname);
}

我的问题是'$newname' 变量打印$arrtreelevel_1[0] 作为文本没有取值,$arrtreelevel_11[0] 返回实际值。 我尝试使用 echo ${'arrtreelevel_1$i'} 也没有打印任何内容。请帮助我解决任何问题。

提前致谢。

【问题讨论】:

  • 你需要使用双引号而不是单引号 ${"arrtreelevel_2$i"}

标签: php


【解决方案1】:

你需要使用双引号而不是单引号

${"arrtreelevel_2$i"}=profiledetails($newname);

【讨论】:

    【解决方案2】:

    使用$$ 使运行时php 变量。替换这一行

    $arrtreelevel_2.$i = profiledetails($newname);
    

    $tempvar = $arrtreelevel_2.$i;
    $$tempvar = profiledetails($newname);
    

    【讨论】:

    • 我正在获取 $arrtreelevel_2.$i 的值作为 arrtreelevel_21,arrtreelevel_22 和儿子。但 $newname 正在打印 $arrtreelevel_21 但实际 $arrtreelevel_21value 是 61,这是我想要的。不是连接变量的名称但它的价值
    • @Webbie : $tempvar 会给你名字$arrtreelevel_21$$arrtreelevel_21 使用$$ 会给你$arrtreelevel_21 的值
    猜你喜欢
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多