Te cuento que no comprendo por qué no te funciona, me hice un archivo php con este código:
Código PHP:
<?php
function caracteresValidos($campo, $patron)
{
if(preg_match_all($patron, $campo, $matches))
return true;
else
return false;
}
$coso = caracteresValidos(12345, "/^[0-9]{5,10}$/");
var_dump($coso);
?>
Y no tengo ningún error con la función, obtengo la salida de var_dump:
bool(false)
Así que creo que deberías verificar que le estés pasando correctamente el parámetro. Quizás al llamar a la función no le estás pasando lo que deberías...
Saludos.