1.1.2. Data typing
As a "typeless" environment, PHP doesn't mind whether data is returned as integer, floating point or string; it can convert to the appropriate type as needed. This conversion process may cause loss in data fidelity in some cases, in particular when it comes to floating point numbers. The type of choice for PDO when binding or requesting data is to use the string type, as this has the best data fidelity.
Note that some database client library implementations don't provide the application with a means to specify their preferred data type, returning it in their own perception of the best native data type. For those drivers it would typically be wasted effort to convert to a string in the PDO driver layer, so the native type is passed up and returned to the script in that form.
The net result of this is that data is usually, but not always, returned as strings unless otherwise specified by the PHP script.