【发布时间】: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";