我可以使用intval,但根据文档:
尽管这取决于字符串最左边的字符,但字符串很可能会返回0.整数投射的通用规则适用.
...并且要解析的值可以是0,即我无法区分零和a string.
$value1 = '0';
$value2 = '15';
$value3 = 'foo'; // Should throw an exeption
Run Code Online (Sandbox Code Playgroud)
真正的问题是:我如何解析字符串并区分一个string强制转换0为零和一个零本身?
Tim*_*per 10
在下面的代码中,$int_value将设置为nullif $value不是实际的数字字符串(基数为10和正数),否则将设置为整数值$value:
$int_value = ctype_digit($value) ? intval($value) : null;
if ($int_value === null)
{
// $value wasn't all numeric
}
Run Code Online (Sandbox Code Playgroud)