我在一页上有:
$cats=some_dynamic_data_value;
$sql="SELECT `number` FROM `table`";
$result=mysql_query($sql);
$value=mysql_fetch_array($result);
echo $value;
在mySQL数据库中,我$cats存储在单元格中,但也存储在列中的其他单元格中,number
其中包含常规的旧数字,例如1,2,3。
当回显评估时,它只显示$cats,但我需要它来显示当时定义的任何$cats。
为什么回声不会再次评估$cats?如何让它计算变量两次,但仍评估常规数字?(为什么双精度变量不起作用)
我希望改得更清楚?
我把它拿出来了。已使用评估函数。
您需要
为此使用eval
:
eval('echo "<td>" . ' . $value . ' . "</td>'n";');
我建议你找到一个更好的方法来做到这一点,因为eval
将执行任意PHP语句,而不仅仅是扩展变量。
我不
完全确定我是否理解您的追求,但您可以简单地这样做:
$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
可能这将是工作。尝试将数据库中的值从"$cat"更改为"cat"。然后你可以在符号链接中使用它:
$cats = "Hello from cats"; // somewhere a variable
$value = "cats"; // this value from database
echo $$value;