PHP 8.3.4 Released!

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.

Возвращаемые значения

Возвращает 1, если num положительное; -1, если num отрицательное; и 0, если num равно нулю.

Примеры

Пример #1 Пример использования gmp_sign()

<?php
// положительное
echo gmp_sign("500") . "\n";

// отрицательное
echo gmp_sign("-500") . "\n";

// ноль
echo gmp_sign("0") . "\n";
?>

Результат выполнения приведённого примера:

1
-1
0

Смотрите также

  • gmp_abs() - Абсолютная величина
  • abs() - Возвращает абсолютную величину (модуль числа)

add a note

User Contributed Notes 6 notes

up
12
Andrew Martin
6 years ago
Using a spaceship in PHP7:

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

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