Integers and floats
PHP
<?php
$count = 42; // int
$price = 1250.75; // float
var_dump(PHP_INT_MAX); // largest int on this systemArithmetic
PHP
<?php
echo 10 + 3; // 13
echo 10 - 3; // 7
echo 10 * 3; // 30
echo 10 / 3; // 3.3333333333333
echo 10 % 3; // 1 — remainder (modulo)
echo 10 ** 3; // 1000 — exponent
echo intdiv(10, 3); // 3 — integer divisionMath functions
PHP
<?php
echo abs(-5); // 5
echo round(3.7); // 4
echo round(3.14159, 2); // 3.14
echo floor(3.9); // 3 — always down
echo ceil(3.1); // 4 — always up
echo sqrt(16); // 4
echo pow(2, 10); // 1024
echo max(3, 9, 2); // 9
echo min([3, 9, 2]); // 2 — works on arrays too
echo rand(1, 100); // random int
echo pi(); // 3.1415926535898Floating-point precision
Floats cannot represent every decimal exactly — this is true in every language, not just PHP:
PHP
<?php
var_dump(0.1 + 0.2 == 0.3); // false!
var_dump(0.1 + 0.2); // float(0.30000000000000004)Compare floats with a tolerance instead:
PHP
<?php
if (abs((0.1 + 0.2) - 0.3) < 0.00001) {
echo "close enough";
}For money, never use floats. Store paisa as integers, or use strings
with bcadd()/bcmul() from the BCMath extension.
Checking numeric strings
PHP
<?php
var_dump(is_numeric("42")); // true
var_dump(is_numeric("42abc")); // false
var_dump(is_numeric("3.14")); // true