Or at the very least you are likely to get terribly confused. The posters confusion has absolutely nothing to do with conditionals and modifiers and is entirely about Ruby variable definition and scoping semantics. In fact if you broke one of his examples by reversing the conditional, the variable, the assignment of which is never evaluated is still defined.
>> a = 1
=> 1
>> unless defined? a
>> b = 5
>> end
=> nil
>> defined? b
=> "local-variable"
>> b
=> nil