Last 5.3 release ever available: PHP 5.3.29 - 5.3 now EOL

gmp_cmp

(PHP 4 >= 4.0.4, PHP 5)

gmp_cmpCompare des nombres GMP

Description

int gmp_cmp ( GMP $a , GMP $b )

Compare deux nombres GMP.

Liste de paramètres

a

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

b

Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

Retourne une valeur positive si a > b, zéro si a = b et négative si a < b.

Exemples

Exemple #1 Exemple avec gmp_cmp()

<?php
$cmp1 
gmp_cmp("1234""1000"); // plus grand que
$cmp2 gmp_cmp("1000""1234"); // plus petit que
$cmp3 gmp_cmp("1234""1234"); // égal à

echo "$cmp1 $cmp2 $cmp3\n";
?>

L'exemple ci-dessus va afficher :

1 -1 0
add a note add a note

User Contributed Notes 1 note

up
-1
russell dot harper at springboardnetworks dot com
4 years ago
I've encountered a memory leak in gmp_cmp if a literal string is used as the second value inside of loops. A workaround is to initialize first, then use the variable. I wasn't able to generate a minimum code sample, it's something more complicated, but I was able to fix it as follows:

<?php

$x
= gmp_init(strval(mt_rand()));

// Depending on surrounding code, may have leaks
while (true)
{
    if (!
gmp_cmp($x, '1'))
        print
'one'."\n";
}

// Usually doesn't have leaks
$one = gmp_init('1');

while (
true)
{
    if (!
gmp_cmp($x, $one))
        print
'one'."\n";
}

?>
To Top