C'est le principe de GMP. Le problème que l'on a lorsque l'on utilise pas GMP est qu'à cause du transtypage tes chaînes de caractères sont converties en int/float lorsque tu effectue une opération arithmétique dessus :
Code :
tycho@uraniborg-> php -r 'echo "2804381131934566" + "3", "\n";'
2.8043811319346E+15
tycho@uraniborg-> php -r 'echo gmp_strval(gmp_add("2804381131934566", "3")), "\n";'
2804381131934569