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
添加笔记

用户贡献笔记 1 笔记

russell dot harper at springboardnetworks dot com
14 年前
我在循环中使用字面字符串作为第二个值时,遇到了 gmp_cmp 中的内存泄漏。一个解决方法是先初始化,然后使用变量。我无法生成最小代码示例,它更复杂,但我能够按如下方式修复它

<?php

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

// 根据周围代码,可能存在泄漏
while (true)
{
if (!
gmp_cmp($x, '1'))
print
'one'."\n";
}

// 通常没有泄漏
$one = gmp_init('1');

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

?>
To Top