©
This document uses PHP Chinese website manual Release
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
gmp_sign — Sign of number
$a
)Checks the sign of a number.
a
可以是一个 GMP 数据 resouce ,或一个可以转换为数值的字符串。
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
[#1] jdyerjdyer [2015-11-18 05:04:01]
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
[#2] Andrew Martin [2014-10-03 15:11:36]
Another way for those without GMP:
<?php
function sign($number) {
return $number / abs($number ?: 1);
}
?>
[#3] gri501r at yandex dot ru [2014-09-19 12:00:18]
May be it's bug :
gmp_sign(1) returns 'false'
[#4] krees [2014-04-03 10:37:00]
You can also do this:
<?php
$sign = min(1, max(-1, $a));
?>
[#5] thomas at zilliox dot me [2011-10-21 03:11:35]
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.