• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • abs()

    (PHP 4, PHP 5, PHP 7)

    绝对值

    说明

    abs(mixed $number):number

    返回参数$number的绝对值。

    参数

    $number

    要处理的数字值

    返回值

    $number的绝对值。如果参数$number是float,则返回的类型也是float,否则返回integer(因为float通常比integer有更大的取值范围)。

    范例

    Example #1abs()例子

    <?php
    $abs = abs(-4.2); // $abs = 4.2; (double/float)
    $abs2 = abs(5);   // $abs2 = 5; (integer)
    $abs3 = abs(-5);  // $abs3 = 5; (integer)
    ?>
    

    参见

    <?php
    $arr = array();
    for ($i = 0; $i < 1000; $i++) $arr[] = rand(-100, 100);
    $start = microtime(true);
    for ($i = 0; $i < 1000; $i++){
      foreach ($arr as $v) $v = abs($v);
    }
    echo number_format(microtime(true) - $start, 4).'<br />';
    $start = microtime(true);
    for ($i = 0; $i < 1000; $i++){
      foreach ($arr as $v) if ($v < 0) $v = abs($v);
    }
    echo number_format(microtime(true) - $start, 4).'<br />';
    $start = microtime(true);
    for ($i = 0; $i < 1000; $i++){
      foreach ($arr as $v) if ($v < 0) $v *= -1;
    }
    echo number_format(microtime(true) - $start, 4).'<br />';
    ?>
    Result:
    1.4061
    0.9697
    0.2805
    Conclusion: better to check before using the feature that the number is less than zero. Even better use multiplication by -1 than this function.
    [*EDIT* by danbrown AT php DOT net: Merged user's corrected code with previous post content.]
    jeremys indicated one thing - there is no sgn function wich actually seems a bit strange for me. Of course it is as simple as possible, but it is usefull and it is a standard math function needed occasionally.
    Well, I have solved this function in a bit different matter:
    <?php
    function sgn($liczba)
    {
      if($liczba>0)
        $liczba=1;
      else if($liczba<0)
        $liczba=-1;
      else if(!is_numeric($liczba))
        $liczba=null;
      else
        $liczba=0;
      return $liczba;
    }
    ?>
    The difference is that it returns null when the argument isn't a number at all.

    下篇:acos()