PHP 5.4.36 Released

gmp_sign

(PHP 4 >= 4.0.4, PHP 5)

gmp_sign数の符号

説明

int gmp_sign ( GMP $a )

数の符号を調べます。

パラメータ

a

PHP 5.5 以前での GMP 数リソース、PHP 5.6 以降での GMP オブジェクト、あるいは数値に変換可能な数値形式の文字列。

返り値

a が正の場合に 1、 a が負の場合に -1、そして a がゼロの場合に 0 を返します。

例1 gmp_sign() の例

<?php
// 正
echo gmp_sign("500") . "\n";

// 負
echo gmp_sign("-500") . "\n";

// ゼロ
echo gmp_sign("0") . "\n";
?>

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

1
-1
0

参考

add a note add a note

User Contributed Notes 4 notes

up
6
thomas at zilliox dot me
3 years ago
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.
up
1
krees
8 months ago
You can also do this:
<?php
$sign
= min(1, max(-1, $a));
?>
up
0
Andrew Martin
2 months ago
Another way for those without GMP:

<?php
function sign($number) {
    return
$number / abs($number ?: 1);
}
?>
up
0
gri501r at yandex dot ru
3 months ago
May be it's bug :
     gmp_sign(1) returns 'false'
To Top