我有这样的功能。我想重置$ output var first call。
function create_tree($tree_array, $reset = TRUE, $ul_class = FALSE) {
if($reset) unset($output); // NOT WORK!!!
static $output = '';
$class = '';
if ($ul_class) {
$class = ' class="' . $ul_class . '"';
}
$output .= '<ul' . $class . '>' . PHP_EOL;
foreach ($tree_array as $v) {
$output .= '<li><a href="' . site_url_i18n($v['link']) . '">' . $v['name'] . '</a>' . PHP_EOL;;
if (isset($v['children'])) {
create_tree($v['children'], false);
}
$output .= '</li>' . PHP_EOL;
}
$output .= '</ul>' . PHP_EOL;
return $output;
}
答案 0 :(得分:6)
$output
在函数中的那个点上并不神奇地存在;当再次看到声明时,它神奇地保留了它的价值。
if ($reset)
$output = '';