How to correctly parse an integer in PHP?
casting, int, php
Solution
In the code below, `$int_value` will be set to `null` if `$value` wasn't an actual numeric string (base 10 and positive), otherwise it will be set to the integer value of `$value`:
$int_value = ctype_digit($value) ? intval($value) : null;
if ($int_value === null)
{
// $value wasn't all numeric
}
Problem
I can use `intval`, but according to the documentation: Strings will most likely return 0 although this depends on the leftmost characters of the string. The common rules of integer casting apply. ... and the value to parse can be `0`, that is I will not able to distinguish between zero and a `string`. ``` $value1 = '0'; $value2 = '15'; $value3 = 'foo'; // Should throw an exeption ``` Real question is: how can I parse the string and distinguish between a `string` that cast to `0` and a zero itself?