你如何在PHP中清除静态变量?

时间:2015-08-27 12:27:19

标签: php static-variables

我创建了一个使用递归来查找给定用户的孩子的函数。如下图所示:

function recursionFunc($param) {
  $q = "select cust_id,amount,position from testtab where parent_id = $param";
    $res = mysql_query($q);
    static $i = 0;
    while ($row = mysql_fetch_assoc($res)) {

            $i++;
            recursionFunc($row['cust_id']);
        }
    return array('totalChild'=>$i);

}
  

有两种情况:

     
      
  1. 我想为我所拥有的每个用户调用recursionFunc()
  2.   
  3. 将进行递归以查找用户的孩子。
  4.   

现在我想在while循环中调用此函数,以便获取我所拥有的所有用户的子节点。 因为我使用静态变量 $ i 来存储childs的值。

现在,当为第一个用户调用函数时,它会返回正确的childs值,但在所有其他情况下返回错误的值

AS显示如下

$cutData = "select cust_id from testtab";
$ress = mysql_query($cutData);
while ($raw = mysql_fetch_assoc($ress)) {
    $response = recursionFunc($raw['cust_id']);
    echo '<pre>'.$raw['cust_id'];
    print_r($response);
    echo '<br>';
}

输出

1Array ( [totalChild] => 7 ) 2Array ( [totalChild] => 10 ) 3Array ( [totalChild] => 12 )

如果你可以帮助我会很棒。

提前致谢。

0 个答案:

没有答案