【问题标题】:PHP Passing Variable to VariablePHP将变量传递给变量
【发布时间】:2020-01-24 19:29:55
【问题描述】:

我提出了关于变量变量的另一个线程。我的人做出了回应,但他的代码不起作用。我要求他澄清,他从来没有回应。所以我发布了一个后续问题。

我有以下代码。当我将动态 $ct 放入代码中时,它会失败并显示未定义的变量。但是当我删除 $ct 时,它工作正常。有人能澄清一下如何将 $ct 变量添加到变量的末尾以便我可以拥有动态变量吗?

$ct = 1;
${"var".$ct} = "String";
echo  $var1;  

上述失败。

$ct = 1;
${"var"} = "String";
echo $var1;

这很好用。

所以添加动态$ct 时出现问题。

他说它应该可以正常工作。我也尝试过使用 $$ 变量然后设置该变量但仍然失败。

/////////编辑

所以我的代码如下所示:

$ct=1;
foreach ($Emp1 as $e){
    if ($e['Status']!="Primary"){



     ${"B1_E1_Info$ct"} = $e['Employer_Name']." ".$e['Address_Unit']." ".$e['City']." ".$e['State']." ".$e['Zip'];
     $B1_E1_SE.$ct  = (strpos($e['Self_Employed'], "| Y") !== false) ? true : false;
     $B1_E1_YrsOn.$ct  = $e['Years_on_Job'];
     $B1_E1_YrsIn.$ct  = $e['Years_in_Line_of_Work'];
     $B1_E1_Pos.$ct  = $e['Position_Title'];
     $B1_E1_Ph.$ct  = $e['Business_Phone'];
    }
    $ct= $ct+1;

}
 echo  $B1_E1_Info1;

当在循环外调用时它不起作用。如果我把它从循环中拿出来,它就可以工作。同样,如果我将循环内的代码更改为不包含 $ct 它也可以工作。 $ct 只是在循环中不起作用。

【问题讨论】:

  • 你的第一个例子对我来说很好,虽然通常当你有可变变量时,你应该做的是使用数组。
  • 使用数组,而不是变量。可变变量令人困惑、难以使用,并且会产生几乎无法找到的错误。
  • 工作正常。你能发布完整的例子吗?
  • 第一个代码有效!第二个代码不起作用,因为您没有创建 $var1 ! Notice: Undefined variable: var1
  • 也许你可以提供php版本,最新的更新是严格的类型。余可以使用:${"var$ct"} = "String";

标签: php variables dynamic


【解决方案1】:

欢迎来到互联网 - 它通过链接工作。如果您的问题是后续问题,则链接到您所指的答案。如果是https://stackoverflow.com/a/58083537/4299358,那么该代码可能会“失败”,因为$record 可能是空的,永远不会设置$var1。

cmets 中已经说过其他所有内容:您的第一个代码确实工作 - 您的 PHP 版本非常过时,或者您没有自己测试过该代码(在它自己的 PHP 文件中之前什么都没有)。此外,这里和那里的 cmets 建议您改用数组。

【讨论】:

    【解决方案2】:

    啊!!!感谢 Amigojacks。我也发现了我的错误。我在条件循环之外调用了 $ct = $ct+1,所以它实际上设置了 $var2 而不是 $var1,因为循环已经触发了一次。当我在循环内移动 $ct + 1 时,它现在可以正常工作了。感谢并抱歉浪费您的时间。有时只是通过谈话来发现自己的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2014-01-11
      • 2011-06-12
      • 1970-01-01
      • 2014-04-23
      • 2011-06-20
      • 2013-06-09
      相关资源
      最近更新 更多