Home >Backend Development >PHP Problem >When are php static variables destroyed?

When are php static variables destroyed?

(*-*)浩
(*-*)浩Original
2019-09-25 09:39:304400browse

When are php static variables destroyed?

Case, When doing recursive infinite subclasses, in the foreach loop, the static variables will be accumulated for each cycle. If you need each cycle to be a category If so, you need to destroy the static variables every time you loop (Recommended learning: PHP Programming from Beginner to Master)

/**
     * 获取所有下级    
     * $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[&#39;pid&#39;] == $pid) {
                    $arr[$level + 1][] = $val[&#39;id&#39;];
                    $this->getTree($data, $val[&#39;id&#39;], $level, $bool_level);
                }
            }
        }
        
        return $arr;
        
    }

The above is the detailed content of When are php static variables destroyed?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn