
案例,在做递归无穷级子类的时刻,在foreach轮回里,静态变量会每一次轮回都累加起来,假如须要每一次轮回是一类的话,就须要每次轮回都烧毁一次静态变量(引荐进修:PHP编程从入门到通晓)
/** * 猎取一切下级 * $data 用户数组 * $pid 用户user_id * $level 递归条理 * $bool_level 推断是不是分级(不分级则猎取一切的下级) * $clear 是不是烧毁静态变量 */ public function getTree($data, $pid = 0, $level = 0, $bool_level = true ,$clear=false ) { if ($pid < 1) { return false; } static $arr = []; if($clear){ $arr = null; static $arr = []; } if ($bool_level) { $level = $level - 1; } else { $level = 1; } if ($level >= 0) { foreach ($data as $key => $val) { if ($val['pid'] == $pid) { $arr[$level + 1][] = $val['id']; $this->getTree($data, $val['id'], $level, $bool_level); } } } return $arr; }
以上就是php静态变量什么时刻烧毁的细致内容,更多请关注ki4网别的相干文章!