Use safety filters even if after applied intval?

intval() behaves sometimes a little bit counter-intuitive when then value has leading zeros or when it is a mathematic expression. The result should always be safe, but is not always what you might expect.

A simple example:

intval( '9223372036854775808' );

will never return this value, because even 64 bit system cannot handle such a large number. You get 9223372036854775807 on a 64 bit system and 2147483647 on 32 bit.

But if you use:

preg_match( '~\d+~', '9223372036854775808', $matches );

$matches[0] will return this number unchanged.

So, it depends on the values you expect.