我完全掌握了我在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);
如何通过多个变量名称循环并取消所有变量名称?有任何想法吗?谢谢!
答案 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);
}
话虽这么说,你应该考虑放弃变量,只使用一个数组。