The controller could have other properties unrelated to views, although the view class could just skip the options its not interested in it's better to not pass invalid options to it. You can avoid the foreach loop though by intersecting the array returned by get_object_vars() with $_settableViewOptions.

`_settableViewOptions` sounds a bit weird, can make it just `_viewOptions` or `_validViewOptions`