gmp_sign

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

gmp_signSign of number

说明

gmp_sign ( GMP $a ) : int

Checks the sign of a number.

参数

a

Either a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6 and later, or a numeric string provided that it is possible to convert the latter to an integer.

返回值

Returns 1 if a is positive, -1 if a is negative, and 0 if a is zero.

范例

Example #1 gmp_sign() example

<?php
// positive
echo gmp_sign("500") . "\n";

// negative
echo gmp_sign("-500") . "\n";

// zero
echo gmp_sign("0") . "\n";
?>

以上例程会输出:

1
-1
0

参见

User Contributed Notes

Andrew Martin 18-Jul-2017 01:28
Using a spaceship in PHP7:

<?php
$sign
= $number <=> 0;
?>
web-develop at yandex dot ru 19-Feb-2016 11:35
Just
$sign = ($a==0 ?0 :$a/abs($a));
jdyerjdyer 18-Nov-2015 05:04
For conciseness or golfing ;)

$s=$n<0|-($n>0)

where $s sign is 1 if positive, -1 if negative, otherwise -0 or +0 which is still 0
Andrew Martin 03-Oct-2014 03:11
Another way for those without GMP:

<?php
function sign($number) {
    return
$number / abs($number ?: 1);
}
?>
gri501r at yandex dot ru 19-Sep-2014 12:00
May be it's bug :
     gmp_sign(1) returns 'false'
krees 03-Apr-2014 10:37
You can also do this:
<?php
$sign
= min(1, max(-1, $a));
?>
thomas at zilliox dot me 21-Oct-2011 03:11
Hi !

If you don't have the GMP extension, the sign function is really simple to code.
Here an example of implementation :

<?php
function sign( $number ) {
    return (
$number > 0 ) ? 1 : ( ( $number < 0 ) ? -1 : 0 );
}

echo
sign( 500 ); // Return 1
echo sign( -500 ); // Return -1
echo sign( 0 ); // Return 0
?>

Thomas.