No sé si se los números de teléfonos varían en los países de centro america o sudamérica como pasa con EE.UU(10 números), pero en España son 3 prefijo y 6 números.
 
¿No te sería más fácil con expresiones regulares?  
 Código PHP:
    <?php
$num = "(916)111-111";
if (preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{3}/x', trim($num)))
    echo "numero correcto";
else
    echo "numero incorrecto";
?>