This expression:
a =! param
assigns the value !param to a. !param is negated version of param evaluated in boolean context.
Assignment operators return the value of the right hand side, so, if (a = !param) also executes the if body, if !param is true.