It is just a PHP coding practice difference and you can combine both. The use of ?:
is called ternary operator and it is like a if/else shorthand. This line:
$title = isset( $instance['title'] ) ? $instance['title'] : '';
It is like:
if( isset( $instance['title'] ) ) {
$title = isset( $instance['title'] );
} else {
$title="";
}
If you see core widgets, they usually use the ternary operator, but is just a coding preference. For example, you can see this code in Archives widget:
$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Archives' ) : $instance['title'], $instance, $this->id_base );
Or this one in Calendar widget:
$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
Applying the widget_title
it is more important to me than using or not ternary operators; you shouldn’t forget it.