0

我在一页上有:

  $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。

当 echo 评估时,它只显示 $cats,但我需要它显示当时定义的任何 $cats。

为什么 echo 不会再次评估 $cats ?我怎样才能让它评估变量两次但仍然评估常规数字?(为什么双变量不起作用)

我希望更改为更清晰?

我把它击倒了。使用评估功能。

4

3 回答 3

4

您需要为此使用eval

eval('echo "<td>" . ' . $value . ' . "</td>\n";');

我建议您找到一种更好的方法来执行此操作,因为eval它将执行任意 PHP 语句,而不仅仅是扩展变量。

于 2013-11-11T22:27:58.453 回答
0

我不完全确定我理解你的追求,但你可以简单地这样做:

$cats=some_dynamic_data_value;

foreach ($row as $field=>$value) 
{
    echo "<td>" $cats ." - " . $value . "</td>\n";
};

这将$cats在您的 foreach 语句中回显值 - 如果这就是您所说的“当时定义”的意思。

另一方面,如果您有一堆其他变量$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
于 2013-11-11T22:33:00.047 回答
0

可能这将是工作。尝试将数据库中的值从“$cat”更改为“cat”。然后你可以在符号链接中使用它:

$cats = "Hello from cats"; // somewhere a variable
$value = "cats"; // this value from database
echo $$value;
于 2013-11-11T22:41:35.257 回答