我摆出了另一个关于变量的线程。我个人回答了,但他的代码无法正常工作。我请他澄清一下,但他从未回应。因此,我要发布一个后续问题。
我有以下代码。当我将动态$ 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;
在调用iside循环时,它不起作用。如果我把它从循环中取出,它将起作用。同样,如果我更改循环内的代码以不包含$ ct,它也可以正常工作。 $ ct只是在循环中不起作用。
答案 0 :(得分:0)
欢迎使用互联网-它可以通过链接运行。如果您的问题是后续问题,请链接到您所参考的答案。如果它是https://stackoverflow.com/a/58083537/4299358,那么该代码可能会“失败”,因为$record
可能为空,永远不要设置$var1
。
评论中已经提到了所有其他内容:您的第一个代码有效 -您的PHP版本非常过时,或者您自己尚未对该代码进行测试(在自己的PHP文件中以前没有)。还在这里和那里评论,建议您改用数组。
答案 1 :(得分:0)
U!感谢Amigojacks。我也发现我的错误。我在条件循环之外调用$ ct = $ ct + 1,所以实际上是在设置$ var2而不是$ var1,因为循环已经触发了一次。当我在循环内移动$ ct + 1时,它现在可以正常工作。谢谢,很抱歉浪费您的时间。有时只是通过交谈来发现自己的错误。