• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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'

    上篇:gmp_setbit()

    下篇:gmp_sqrt()