W3docs

is_long()

La fonction is_long() en PHP vérifie si une variable est de type entier. Elle retourne true si c'est un entier, false sinon.

Introduction

is_long() est une fonction PHP intégrée qui vérifie si une variable contient une valeur de type entier. Elle retourne true si la variable est un entier et false dans le cas contraire.

L'essentiel à comprendre est que is_long() est un alias exact de is_int() : les deux noms appellent la même fonction sous-jacente et se comportent de manière identique. Cette page explique l'origine du nom is_long(), son comportement, et pourquoi vous devriez généralement préférer is_int() dans le nouveau code.

Pourquoi le nom "is_long" ?

Dans le code source C de PHP, le type entier est représenté en interne par un long C. En raison de cet historique, PHP expose trois noms interchangeables pour la même vérification d'entier :

  • is_int() — le nom canonique et recommandé.
  • is_integer() — un alias conservé pour la lisibilité.
  • is_long() — un alias qui reflète le nom du type C interne.

Les trois sont encore disponibles dans PHP actuel (y compris PHP 8.x), et tous trois retournent le même résultat pour la même entrée. Le manuel PHP liste is_long() et is_integer() comme alias de is_int() et recommande is_int() pour la clarté.

Syntaxe de base

is_long($variable); // identical to is_int($variable)

Le paramètre $variable est la valeur à tester. La fonction retourne true uniquement pour une valeur entière réelle, sans coercition de type — les chaînes numériques et les flottants retournent false.

Exemple d'utilisation

Ici, is_long() est utilisé pour tester trois variables différentes :

php— editable, runs on the server
bool(true)
bool(false)
bool(false)

Seul $var1 est un vrai entier. La chaîne numérique "10" et le flottant 3.14 retournent tous deux false, car is_long() vérifie le type réel sans jamais convertir la valeur au préalable. Remplacer is_long() par is_int() ici produirait exactement le même résultat — c'est ce que signifie « alias ».

Filtrer les valeurs par type

Puisqu'elle retourne un booléen, is_long() fonctionne directement comme rappel pour des fonctions comme array_filter(). C'est pratique pour ne conserver que les entiers réels d'un tableau mixte :

php— editable, runs on the server
Array
(
    [0] => 10
    [3] => 40
)

array_filter() ne conserve que les vrais entiers, en écartant la chaîne numérique "20" et le flottant 30.5. Notez que les clés du tableau d'origine (0 et 3) sont préservées, sans renumérotation.

Remarques importantes

  • Alias de is_int() : is_long() n'a pas de comportement propre. Il n'existe pas de type « long » distinct de int en PHP ; le nom reflète simplement la représentation C interne.
  • Toujours disponible, mais non préféré : is_long() fonctionne dans PHP actuel, mais le manuel recommande is_int() pour la lisibilité. De nombreux guides de style et outils d'analyse statique signalent l'alias.
  • Pas de coercition de type : comme is_int(), elle retourne false pour les chaînes numériques ("123") et les flottants à valeur entière (5.0). Pour accepter ceux-ci, utilisez is_numeric() ou filter_var($var, FILTER_VALIDATE_INT).

Bonnes pratiques

Préférer is_int() dans le nouveau code

is_int(), is_integer() et is_long() sont interchangeables, donc choisissez-en un et soyez cohérent. La convention de la communauté est is_int() — c'est le plus court, le plus clair, et le nom utilisé dans la documentation.

Éviter les comparaisons redondantes

Puisque la fonction retourne déjà un booléen, envelopper son résultat dans une comparaison stricte (=== true) est inutile. Écrivez simplement if (is_int($var)).

Fonctions de vérification de type associées

  • is_int() — la vérification d'entier canonique et recommandée.
  • is_integer() — un autre alias lisible de is_int().
  • is_numeric()true pour les entiers, les flottants et les chaînes numériques.
  • is_float() — vérifie les valeurs à virgule flottante.
  • is_string() — vérifie les valeurs de type chaîne.

Conclusion

is_long() est simplement un nom alternatif pour is_int(). Elle effectue une vérification d'entier stricte, sans coercition, et se comporte de manière identique à son homologue mieux connu. Étant donné que l'alias n'apporte aucune fonctionnalité supplémentaire et peut dérouter les lecteurs, utilisez is_int() dans le nouveau code et réservez is_long() à la compréhension des bases de code plus anciennes qui s'appuient encore sur ce nom.

Pratique

Pratique
Laquelle des affirmations suivantes sur la fonction PHP 'is_long' est vraie ?
Laquelle des affirmations suivantes sur la fonction PHP 'is_long' est vraie ?
Was this page helpful?