Cita: function validateUserName($username){
//No cumple long minimos
if (strlen($username)<5) return false;
//Minimo ok pero caracteres no ok
else if (!preg_match("/^[a-zA-Z0-9]+$/",$username)) return false;
//Todo ok
else
return true;
}
Es cuestion de revisar un poco lo que estas haciendo. Si en la primera condición te retorna falso ya no es necesario que revises mas opciones. Si te retorna verdadero ahi si ya debes verificar que coincida con tu patron. Tal como lo tienes ahora el sigue evaluando la siguiente condición sin importar la respuesta anterior.