【问题标题】:Defining PHP variables out of foreach?在 foreach 之外定义 PHP 变量?
【发布时间】:2020-01-22 16:22:44
【问题描述】:

我正在这样做

foreach(['A', 'B', 'C', 'D'] as $x) {
    $x = $s->where('status', $x)->count() / $h * 100;
}

现在我尝试像这样回应它:

echo $A; echo $B;

等等

但它说$A 未定义,我该怎么做?

【问题讨论】:

  • 没有$A$B 也许你的意思是echo $x;
  • 也许variable variables 是你的追求,所以$$x = ...。虽然我会坚持使用数组)。
  • 您正在用计算值覆盖$x,因此您会丢失原始值,例如'A'。如果两者都需要,请使用第二个变量,例如 $count,而不是重新分配 $x
  • $h 似乎也没有被定义?
  • @NigelRen 是的,它是 $$。谢谢

标签: php laravel


【解决方案1】:

一旦这个问题缺乏解释,我假设您要为数组的每个字母分配一个值,如variable variables,正如@nigel-ren 所建议的那样:

foreach(['A', 'B', 'C', 'D'] as $x) {
    $$x = $s->where('status', $x)->count() / $h * 100;
}

对于每次迭代,$$x 将创建变量$A$B$C$D,并分配$s->where('status', $x)->count() / $h * 100; 返回的值。

之后,您可以回显$A$B$C$D 的值。

【讨论】:

    【解决方案2】:

    我到达这里,因为它并不完全清楚,但你正在用计算覆盖循环中的值$x。您可以像这样获取状态和计算:

    foreach(['A', 'B', 'C', 'D'] as $status) {
        $x = $s->where('status', $status)->count() / $h * 100;
        echo "The result for $status is $x <br />";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 2018-08-23
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多