Using filter in the widget causes fatal error

Your code should look something like this:

class my_Widget extends WP_Widget {

...

function filter_where( $where="" ) {
    ...
}

function widget( $options ) {
    ...
    add_filter( 'posts_where', array( $this, 'filter_where' ) );
    $query = new WP_Query( $args );
    remove_filter( 'posts_where', array( $this, 'filter_where' ) );
}
}

This will keep the function within your class, access it at a class level, and avoid any namespace issues.