gmp_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_sign数字的符号

说明

gmp_sign(GMP|int|string $num): int

检查数字的符号。

参数

num

一个 GMP 对象,或者一个可以转换为 int 的数字字符串。

返回值

如果 num 为正,则返回 1;如果 num 为负,则返回 -1;如果 num 为零,则返回 0。

范例

范例 #1 gmp_sign() 例子

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

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

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

上面的例子将会输出

1
-1
0

参见

添加注释

用户贡献的注释 6 notes

12
Andrew Martin
7 年前
在 PHP7 中使用飞船运算符

<?php
$sign
= $number <=> 0;
?>
17
thomas at zilliox dot me
12 年前
你好!

如果你没有 GMP 扩展,符号函数非常简单。
这是一个实现的例子

<?php
function sign( $number ) {
return (
$number > 0 ) ? 1 : ( ( $number < 0 ) ? -1 : 0 );
}

echo
sign( 500 ); // 返回 1
echo sign( -500 ); // 返回 -1
echo sign( 0 ); // 返回 0
?>

Thomas.
-7
jdyerjdyer
8 年前
为了简洁或代码高尔夫;)

$s=$n<0|-($n>0)

其中 $s 符号为 1(正数),-1(负数),否则为 -0 或 +0,仍然是 0
-6
Andrew Martin
9 年前
另一种方法,适合那些没有 GMP 的人

<?php
function sign($number) {
return
$number / abs($number ?: 1);
}
?>
-11
krees
10 年前
你也可以这样做
<?php
$sign
= min(1, max(-1, $a));
?>
-10
gri501r at yandex dot ru
9 年前
可能是 bug
gmp_sign(1) 返回 'false'
To Top