public static function map($filename, $callback, $option = null)
 {
     $it = new self($filename, $option);
     while ($it->valid()) {
         $key = $it->key();
         $value = $it->current();
         if (is_callable($callback)) {
             $ret = call_user_func($callback, $key, $value);
             if (!$ret) {
                 break;
             }
         }
         $it->next();
     }
     //$it->__destruct();
     unset($it);
 }