CakeFest 2024: The Official CakePHP Conference

gmp_cmp

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_cmpCompare des nombres GMP

Description

gmp_cmp(GMP|int|string $num1, GMP|int|string $num2): int

Compare deux nombres GMP.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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

User Contributed Notes 1 note

up
2
russell dot harper at springboardnetworks dot com
13 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