public function find_children_cat($cat_id, $data) { static $tem=array(); foreach ($data as $val) { if ( $val['parent_id'] == $cat_id ) { array_push($tem, $val['cat_id']); $this->find_children_cat($val['cat_id'], $data); } } return $tem; }
用了static array_push的值就不會(huì)出現(xiàn)重復(fù),一般情況下array_push只要push相同的值就會(huì)出現(xiàn)重復(fù)值;
為什么用了static之后就不會(huì)出現(xiàn)重復(fù)值呢?
public function find_children_cat($cat_id, $data) { static $tem=array(); foreach ($data as $val) { if ( $val['parent_id'] == $cat_id ) { array_push($tem, $val['cat_id']); $this->find_children_cat($val['cat_id'], $data); } } return $tem; }
用了static array_push的值就不會(huì)出現(xiàn)重復(fù),一般情況下array_push只要push相同的值就會(huì)出現(xiàn)重復(fù)值;
為什么用了static之后就不會(huì)出現(xiàn)重復(fù)值呢?
具體代碼沒(méi)有去看,有沒(méi)有重復(fù)值先不管,正常一般的函數(shù)內(nèi)變量在函數(shù)結(jié)束后會(huì)釋放,但當(dāng)你在函數(shù)中將變量設(shè)置為 staitc 時(shí),卻是不會(huì)的,靜態(tài)變量是存在于整個(gè)函數(shù)作用域內(nèi)的,你每次調(diào)用函數(shù)的時(shí)候,該變量的值都是會(huì)保留的。
PHP怎么學(xué)習(xí)?PHP怎么入門(mén)?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門(mén)到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)