Using a spaceship in PHP7:
<?php
$sign = $number <=> 0;
?>
PHP - Manual: gmp_sign
2024-12-23
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
gmp_sign — Sign of number
num
Either a GMP object, or a numeric string provided that it is possible to convert the latter to an int.
Returns 1 if num
is positive,
-1 if num
is negative,
and 0 if num
is zero.
示例 #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
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.
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
Another way for those without GMP:
<?php
function sign($number) {
return $number / abs($number ?: 1);
}
?>