gmp_cmp()
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
Compare numbers
说明
gmp_cmp(GMP$a, GMP$b): int
Compares two numbers.
参数
- $a
可以是一个 GMP数据resouce,或一个可以转换为数值的字符串。
- $b
可以是一个 GMP数据resouce,或一个可以转换为数值的字符串。
返回值
Returns a positive value ifa > b, zero ifa = band a negative value ifa < b.
范例
gmp_cmp() example
<?php $cmp1 = gmp_cmp("1234", "1000"); // greater than $cmp2 = gmp_cmp("1000", "1234"); // less than $cmp3 = gmp_cmp("1234", "1234"); // equal to echo "$cmp1 $cmp2 $cmp3\n"; ?>
以上例程会输出:
1 -1 0
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"; } ?>