PHP 7.4.22 Released!

gmp_cmp

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

gmp_cmpСравнение чисел

Описание

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

Сравнивает два числа.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает положительное значение, если a > b, ноль, если a = b и отрицательное значение, если a < b.

Примеры

Пример #1 Пример использования gmp_cmp()

<?php
$cmp1 
gmp_cmp("1234""1000"); // больше
$cmp2 gmp_cmp("1000""1234"); // меньше
$cmp3 gmp_cmp("1234""1234"); // равны

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

Результат выполнения данного примера:

1 -1 0
add a note add a note

User Contributed Notes 1 note

up
1
russell dot harper at springboardnetworks dot com
11 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