-1

我完全掌握了在 MySQL 查询的 while 循环中创建的变量变量:

$query = "SELECT * FROM fruit_table";
$result = mysql_query($result);

//for sake of argument, well say this creates 3 rows to loop through.
while ($row = mysql_fetch_array($result)){
 $var = $row[1];
 $$var = $row[2];
}

现在我们假设它已经创建了:$orange = 'orange', $apple = 'red', $banana = 'yellow'。此函数将循环多次,但我需要在再次运行之前取消设置/清空所有变量。根据运行的查询,变量名称每次可能不同。

这似乎不起作用:

unset($var);
unset($$var);

如何循环多个变量名并取消所有变量名?有任何想法吗?谢谢!

4

1 回答 1

4

您必须将创建的变量名保存到数组中,然后取消设置所有变量名:

$created_vars = array();
while ($row = mysql_fetch_array($result)){
    $var = $row[1];
    $created_vars[] = $var;
    $$var = $row[2];
}

foreach( $created_vars as $var) {
    unset( $$var);
}

话虽如此,您应该考虑放弃变量,而只使用数组。

于 2012-12-13T23:47:20.093 回答