Syntaxe
<<<
Dépassement de capacité des entiers Conversion en entiers
>>>

4.2.3 Entiers
4.2 Les types
4 Référence du langage
 Manuel PHP

Syntaxe
->Dépassement de capacité des entiers
Conversion en entiers

4.2.3.2 Dépassement de capacité des entiers

Si un nombre est hors de l'intervalle de validité des entiers, il sera interprété comme un float . De même, si vous effectuez une opération qui retourne un nombre hors de l'intervalle de validité des entiers, un float sera retourné.
Dépassement de capacité des entiers

<?php
$large_number
=  2147483647;
var_dump($large_number);
// affiche : int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// affiche : float(2147483648)

// cette méthode ne convient pas pour les entiers hexadécimaux :
var_dump( Notice: Hex number is too big: 0x100000000 in /Volumes/ibook/phpdoc-fr/html.inc on line 749 0x100000000 );
// affiche : int(2147483647)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);
// affiche : float(50000000000)
?>
Attention

Malheureusement, il y a un bogue dans le moteur (corrigé en 4.1.0), qui fait que PHP ne fonctionne pas toujours bien lorsque des nombres négatifs sont utilisés. Lorsque les deux opérandes sont positifs, il n'y a pas de problèmes. Par exemple : -50000 * $million , conduit à -429496728 . Cependant, lorsque les deux opérateurs sont positifs, il n'y a aucun problème.

Ceci a été résolu en PHP 4.1.0.

Il n'existe pas de division entière en PHP. 1/2 générera le float 0.5 . Vous pouvez forcer la valeur au format entier pour faire l'arrondi ou bien utiliser la fonction round .
Divisions entières

<?php
var_dump
(25/7); // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7)); // float(4)
?>

<< Dépassement de capacité des entiers >>
Syntaxe Entiers Conversion en entiers