This seems to become a long discussion, and I put my two cents here as well.

What do you think about adding explicit validation at the top of the function, something like this:

'''if ( !is_array($params) ) {
  if ( is_null($params) ) {
    $params = array();
  } else {
    // throw Exception or whatever fits best here
  }
}