Entiers surpositifs
<?php
$three = +-+3; // -3
$three = -+-3; // 3
$four = -+-+4; // 4
$four = -+-+4; // 4
var_dump(+0 === -0);
var_dump((int) '+-+3');
var_dump(is_numeric('+-+3'));
PHP possède des entiers signés. Ils peuvent être positifs ou négatifs, avec + ou -.
À l’analyse syntaxique, les entiers et leur signe sont des entités séparées. Cela signifie que - et 3 sont traités en deux étapes, et PHP autorise le chaînage des opérateurs de signe. Ainsi, + et - peuvent être ajoutés autant que l’on veut devant les entiers, à condition qu’ils alternent.
Notez que is_numeric() n’est pas trompée par cette astuce, et retourne false sur de telles chaînes, tandis que l’opérateur de cast (int) transforme la chaîne en 0, comme s’il y avait une erreur.
Enfin, il existe un entier qui est égal à lui-même qu’il soit positif ou négatif : zéro.
See Also
- Over-signed integers [Try me]
PHP Error Messages
PHP Features
Last updated: 11 October 2026