PHP Numbers
In PHP, numbers represent numeric values and can be broadly categorized into two main types:
There are three main numeric types in PHP:
• Integer
Represent whole numbers without decimal points.
Range depends on your system's architecture:
32-bit system: -2,147,483,648 to 2,147,483,647
64-bit system: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
• Float
Represent numbers with decimal points or in scientific notation (e.g., 2.5E+3).
Have higher precision than integers but are less precise than arbitrary-precision libraries.
• Number Strings
In addition, PHP has two more data types used for numbers:
• Infinity
• NaN
Example
$a = 5; $b = 5.34; $c = "25";
To verify the type of any object in PHP, use the var_dump() function:
Example
<!DOCTYPE html> <html> <body> <?php $a = 5; $b = 5.34; $c = "25"; var_dump($a); echo "<br>"; var_dump($b); echo "<br>"; var_dump($c); ?> <p>Line breaks were added for better readability.</p> </body> </html>
Output
int(5)
float(5.34)
string(2) "25"
Line breaks were added for better readability.
PHP Integers
2, 256, -256, 10358, -179567 are all integers.
An integer is a number without any decimal part.
An integer data type is a non-decimal number between -2147483648 and 2147483647 in 32 bit systems, and between -9223372036854775808 and 9223372036854775807 in 64 bit systems. A value greater (or lower) than this, will be stored as float, because it exceeds the limit of an integer.
Here are some rules for integers:
1 • An integer must have at least one digit
2 • An integer must NOT have a decimal point
3 • An integer can be either positive or negative
4 • Integers can be specified in three formats: decimal (10-based), hexadecimal (16-based - prefixed with 0x) or octal (8-based - prefixed with 0)
PHP has the following predefined constants for integers:
• PHP_INT_MAX - The largest integer supported
• PHP_INT_MIN - The smallest integer supported
• PHP_INT_SIZE - The size of an integer in bytes
PHP has the following functions to check if the type of a variable is integer:
• is_int()
• is_integer() - alias ofis_int()
• is_long() - alias of is_int()
Example
<!DOCTYPE html> <html> <body> bool(true) <br>bool(false) </body> </html>
Output
bool(true)
bool(false)
PHP Floats
A float is a number with a decimal point or a number in exponential form.
2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 are all floats.
The float data type can commonly store a value up to 1.7976931348623E+308 (platform dependent), and have a maximum precision of 14 digits.
PHP has the following predefined constants for floats (from PHP 7.2):
• PHP_FLOAT_MAX - The largest representable floating point number
• PHP_FLOAT_MIN - The smallest representable positive floating point number
• PHP_FLOAT_DIG - The number of decimal digits that can be rounded into a float and back without precision loss
• PHP_FLOAT_EPSILON - The smallest representable positive number x, so that x + 1.0 != 1.0
PHP has the following functions to check if the type of a variable is float:
• is_float()
• is_double() - alias of is_float()
Example
<!DOCTYPE html> <html> <body> <?php // Check if the type of a variable is float $x = 10.365; var_dump(is_float($x)); ?> </body> </html>
Output
bool(true)
PHP Infinity
A numeric value that is larger than PHP_FLOAT_MAX is considered infinite.
PHP has the following functions to check if a numeric value is finite or infinite:
• is_finite()
• is_infinite()
Example
<!DOCTYPE html> <html> <body> <?php // Check if a numeric value is finite or infinite $x = 1.9e411; var_dump($x); ?> </body> </html>
Output
float(INF)
PHP NaN
NaN stands for Not a Number.
NaN is used for impossible mathematical operations.
PHP has the following functions to check if a value is not a number:
• is_nan()
However, the PHP var_dump() function returns the data type and value:
Example
<!DOCTYPE html> <html> <body> <?php // Invalid calculation will return a NaN value $x = acos(8); var_dump($x); ?> </body> </html>
Output
float(NAN)
PHP Numerical Strings
The PHP is_numeric() function can be used to find whether a variable is numeric. The function returns true if the variable is a number or a numeric string, false otherwise.
Example
<!DOCTYPE html> <html> <body> <?php // Check if the variable is numeric $x = 5985; var_dump(is_numeric($x)); echo "<br>"; $x = "5985"; var_dump(is_numeric($x)); echo "
</body> </html>
Output
bool(true)
bool(true)
bool(true)
bool(false)