gmp_sign

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

gmp_signSigne du nombre GMP

Description

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

Vérifie le signe d'un nombre.

Liste de paramètres

num

Soit une ressource de nombre GMP en PHP 5.5 et antérieur, un objet GMP dans PHP 5.6 et ultérieur, ou une chaîne numérique à condition qu'il soit possible de convertir ce dernier en un entier.

Valeurs de retour

Retourne le signe de num : 1 si num est positif, -1 s'il est négatif et 0 si num est égal à zéro.

Exemples

Exemple #1 Exemple avec gmp_sign()

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

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

// zéro
echo gmp_sign("0") . "\n";
?>

L'exemple ci-dessus va afficher :

1
-1
0

Voir aussi

add a note add a note

User Contributed Notes 7 notes

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

<?php
$sign
= $number <=> 0;
?>
up
19
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
0
web-develop at yandex dot ru
8 years ago
Just
$sign = ($a==0 ?0 :$a/abs($a));
up
-3
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
-6
krees
10 years ago
You can also do this:
<?php
$sign
= min(1, max(-1, $a));
?>
up
-5
Andrew Martin
9 years ago
Another way for those without GMP:

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