我想声明一个包含变量名的字符串,然后让 php 能够从字符串中识别该变量,例如 javascript eval。例子:
这段代码有效,因为 $value 的值是字符串的结尾,而不是“$value”。
$value="some value";
$str="the value is $value";
echo $str;
//the value is some value
但我想要这个功能:
$str2="the new value is $newValue";
$newValue="something new";
echo $str2;
//the new value is something new
当然这在 php 中不起作用,因为在分配 $str2 时 $newValue 不存在。无论如何,php 是否可以这样做,以便能够从字符串中获取变量名,然后获取该变量的值?我猜这有点像javascript eval。谢谢阅读!
用法:我在 foreach 循环中构建 html 块。它通过一个数组循环,因此循环内部的信息是每个数组元素的键和值。我正在为表单对象编写一种方法,该方法允许用户指定输入块的元素。其中一些元素想要访问密钥,而一些元素想要访问值。所以例如
foreach($cars as $key=>$car)
{
echo "<input id='text$key' type='text' value='".$car["model"]."'><br>
\n<input value='choice$key' type='button' value='".$car["make"]."'>
<br><br>\n\n";
}
会产生类似的东西
<input id="text0" type="text" value="Malibu"><br>
<input id="choice0" type="button" value="Chevy"><br><br>
<input id="text1" type="text" value="Escort"><br>
<input id="choice1" type="button" value="Ford"><br><br>
我希望这是动态生成的,所以假设我有一些名为 makeCarForm 的方法,它接受一个字符串作为输入,所以让我们说
function makeCarForm($formString)
{
foreach($cars as $key=>$car)
{
echo $formString;
}
}
然后我的字符串
$theFormString="<input id='text$key' type='text' value='".$car["model"]."'><br>
\n<input value='choice$key' type='button' value='".$car["make"]."'>
<br><br>\n\n";
所以我可以调用这个函数
makeCarForm($theFormString);
它会产生与上面相同的 HTML 输出。这有意义吗?我会以错误的方式解决这个问题吗?