gmp_sign()
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
Sign 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$ais positive,-1 if$ais negative, and 0 if$ais zero.
范例
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
参见
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.
Using a spaceship in PHP7: <?php $sign = $number <=> 0; ?>
Just $sign = ($a==0 ?0 :$a/abs($a));
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
You can also do this: <?php $sign = min(1, max(-1, $a)); ?>
Another way for those without GMP: <?php function sign($number) { return $number / abs($number ?: 1); } ?>
May be it's bug : gmp_sign(1) returns 'false'