The GMP library is available as of PHP 4.0.4. While most members of
the GMP family of functions accept integers and strings as arguments,
they prefer to pass numbers around as resources, which are
essentially pointers to the numbers. So, unlike BCMath functions,
which return strings, GMP functions return only resources. You then
pass the resource to any GMP function, and it acts as your number.
The only downside is when you want to view or use the resource with a
non-GMP function, you need to explicitly convert it using
gmp_strval( ) or gmp_intval( ).
GMP functions are liberal in what they accept. For instance:
$four = gmp_add(2, 2); // You can pass integers
$eight = gmp_add('4', '4'); // Or strings
$twelve = gmp_add($four, $eight); // Or GMP resources
print gmp_strval($twelve); // Prints 12