取消设置多个php变量变量

时间:2012-12-13 23:45:06

标签: php variables variable-variables

我完全掌握了我在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);

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

1 个答案:

答案 0 :(得分: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);
}

话虽这么说,你应该考虑放弃变量,只使用一个数组。