静态数组重复调用前要清空
浏览量:448
php中方法返回值是一个静态数组,重复调用两次这个方法,导致上一次的结果在下一次的结果中显示
这只是属于这个静态变量没清掉而已, 直接在调用完方法后, 再调用下将list 释放掉, 就像这样:
class Demo {
static $list = array();
public function getCateTree($data, $id = 0, $lev = 0) {
foreach ($data as $v) {
if($v['pid'] == $id){
$v['lev'] = $lev;
self::$list[] = $v;
$this->getCateTree($data, $v['id'], $lev + 2);
}
}
return self::$list;
}
public function initStatic() {
self::$list = array();
}
}
$data = array(
array(
"id" => "1",
"pid" => "0",
"name" => "name1"
),
array(
"id" => "2",
"pid" => "0",
"name" => "name2"
),
array(
"id" => "3",
"pid" => "1",
"name" => "name3"
),
array(
"id" => "4",
"pid" => "3",
"name" => "name4"
),
array(
"id" => "5",
"pid" => "1",
"name" => "name5"
),
);
echo '<pre>';
$D = new Demo();
$result1 = $D->getCateTree($data, "0");
$D->initStatic();
print_r($result1);
$result2 = $D->getCateTree($data, "1");
$D->initStatic();
print_r($result2);

感谢支持与鼓励~