PHP 8.5.0 Alpha 1 available for testing

Voting

: max(two, seven)?
(Example: nine)

The Note You're Voting On

Robin
15 years ago
Keep in mind that is_int() operates in signed fashion, not unsigned, and is limited to the word size of the environment php is running in.

In a 32-bit environment:

<?php
is_int
( 2147483647 ); // true
is_int( 2147483648 ); // false
is_int( 9223372036854775807 ); // false
is_int( 9223372036854775808 ); // false
?>

In a 64-bit environment:

<?php
is_int
( 2147483647 ); // true
is_int( 2147483648 ); // true
is_int( 9223372036854775807 ); // true
is_int( 9223372036854775808 ); // false
?>

If you find yourself deployed in a 32-bit environment where you are required to deal with numeric confirmation of integers (and integers only) potentially breaching the 32-bit span, you can combine is_int() with is_float() to guarantee a cover of the full, signed 64-bit span:

<?php
$small
= 2147483647; // will always be true for is_int(), but never for is_float()
$big = 9223372036854775807; // will only be true for is_int() in a 64-bit environment

if( is_int($small) || is_float($small) ); // passes in a 32-bit environment
if( is_int($big) || is_float($big) ); // passes in a 32-bit environment
?>

<< Back to user notes page

To Top