我有一页:
$cats=some_dynamic_data_value;
$sql="SELECT `number` FROM `table`";
$result=mysql_query($sql);
$value=mysql_fetch_array($result);
echo $value;
在mySQL数据库中,我将$ cat存储在一个单元格中,但是number
列中的其他单元格中也存在常规的旧数字,如1,2,3。
当echo评估时,它只显示$ cats,但我需要它来显示当时定义的$ cats。
为什么echo不能再次评估$ cats?我怎样才能让它评估变量两次,但仍然评估常规数字? (为什么双变量不起作用)
变得更加清晰我希望?
我发现了它。使用了EVAL FUNCTION。
答案 0 :(得分:4)
您需要使用eval
:
eval('echo "<td>" . ' . $value . ' . "</td>\n";');
我建议你找到一种更好的方法,因为eval
将执行任意PHP语句,而不仅仅是扩展变量。
答案 1 :(得分:0)
我不完全确定我理解你的目标,但你可以这样做:
$cats=some_dynamic_data_value;
foreach ($row as $field=>$value)
{
echo "<td>" $cats ." - " . $value . "</td>\n";
};
这将在你的foreach语句中回显$cats
中的值 - 如果你的意思是“当时定义的那样”。
另一方面,如果你有一堆$cats
可以有的其他变量,你可以看一下变量变量:
$dog="Woof";
$cow="Mooo";
$fluffeh="Fluffs";
现在,如果要在包含变量名称的$cats
变量中显示这些值,您可以这样做:
$cats="dog";
foreach ($row as $field=>$value)
{
echo "<td>" $$cats ." - " . $value . "</td>\n";
// $value assumed to be 1234 for output.
};
输出:
<td>Woof - 1234
答案 2 :(得分:0)
这可能会有用。尝试将数据库中的值从“$ cat”更改为“cat”。然后你可以在符号链接中使用它:
$cats = "Hello from cats"; // somewhere a variable
$value = "cats"; // this value from database
echo $$value;