<code>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; }</code>
정적 array_push를 사용하면 값이 중복되지 않습니다. 일반적인 상황에서 array_push는 동일한 값이 푸시되는 한 중복 값을 갖게 됩니다.
정적을 사용한 후에 중복 값이 없는 이유는 무엇입니까? ?
<code>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; }</code>
정적 array_push를 사용하면 값이 중복되지 않습니다. 일반적인 상황에서 array_push는 동일한 값이 푸시되는 한 중복 값을 갖게 됩니다.
정적을 사용한 후에 중복 값이 없는 이유는 무엇입니까? ?
특정 코드를 살펴보지는 않았는데, 중복된 값이 있는지는 신경쓰지 않습니다. 일반적으로 함수 내 변수는 함수 종료 후 해제되지만, 에서 변수를 staitc
로 설정하면 해제됩니다. 함수를 호출할 때마다 정적 변수는 유지됩니다.