php如何取消静态var

时间:2011-05-10 08:26:32

标签: php

我有这样的功能。我想重置$ 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;
}

1 个答案:

答案 0 :(得分:6)

$output在函数中的那个点上并不神奇地存在;当再次看到声明时,它神奇地保留了它的价值。

if ($reset)
   $output = '';