取消设置多个php变量
我在MySQL查询的while循环中创建了一整套变量:取消设置多个php变量,php,variables,variable-variables,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]; }
$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/null。根据运行的查询,每次变量名可能不同
这似乎不起作用:
unset($var);
unset($$var);
我如何循环使用多个变量名并取消所有变量名的设置?有什么想法吗?谢谢 您必须将创建的变量名保存到数组中,然后取消设置所有变量名:
$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);
}
所说的,你应该考虑放弃变量,只使用一个数组。
重构变量是现实的吗?只要调用\u fetch\u assoc
而不是\u fetch\u array
就可以得到一个很好的关联数组。变量是一种代码味道。另外…我认为如果你使用阵列,你会少一些麻烦。在PHP中没有任何理由,除了%0.1的情况下,变量确实是必需的。只需使用阵列即可节省大量调试时间;)小心!PHP的未来版本正在弃用并删除mysql\uuz
函数系列。现在将是一个很好的时间,或。