사례, 재귀적 무한 하위 클래스를 만들 때 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 정적 변수는 언제 파괴됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!