abs

(PHP 4, PHP 5, PHP 7, PHP 8)

abs絶対値

説明

abs(int|float $num): int|float

num の絶対値を返します。

パラメータ

num

処理する数値。

戻り値

num の絶対値を返します。もし num の型が float であった場合、 戻り値の型も float となります。それ以外の場合は 戻り値の型は int となります(float は、 int の最大値より大きい値をとることがありえるからです)。

変更履歴

バージョン 説明
8.0.0 num は、 数値への変換をサポートした内部オブジェクトを受け入れなくなりました。

例1 abs() の例

<?php
var_dump
(abs(-4.2));
var_dump(abs(5));
var_dump(abs(-5));
?>

上の例の出力は以下となります。

float(4.2)
int(5)
int(5)

参考

add a note add a note

User Contributed Notes 1 note

up
3
eep2004 at ukr dot net
3 years ago
<?php
echo 'PHP '.PHP_VERSION.'<br>';

$qty = 1000;
$arr = array();
for (
$i = 0; $i < $qty; $i++){
   
$arr[] = rand(-100, 100);
}

$start = microtime(true);
for (
$i = 0; $i < $qty; $i++){
    foreach (
$arr as $v){
       
$v = abs($v);
    }
}
echo
number_format(microtime(true) - $start, 4).'<br>';

$start = microtime(true);
for (
$i = 0; $i < $qty; $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 < $qty; $i++){
    foreach (
$arr as $v){
        if (
$v < 0) $v *= -1;
    }
}
echo
number_format(microtime(true) - $start, 4).'<br>';
?>
Result:
PHP 7.1.33
0.0910
0.0710
0.0550

Conclusion: better to check before using the feature that the number is less than zero. Even better use multiplication by -1 than this function.
To Top