Con PDO MySQL la API C subyacente
devuelve una estructura de cadenas al llamar a mysql_fetch_row()
. Dado que PHP es un lenguaje poco tipificado que se convierte automáticamente en un número entero según sea necesario, sospecho que los desarrolladores de PDO optaron por devolverlos tal como están. Esto sería más rápido que buscar cada tipo de columna y convertir dinámicamente a un número entero/flotante.
Específicamente con respecto a float, un float de PHP nativo puede ser diferente al valor almacenado original cuando se convierte de una cadena. Por ejemplo, las columnas de MySQL admiten una precisión mientras que los flotantes de PHP no. Dejar flotantes como una cadena de la base de datos le permite tener más control (por ejemplo, elegir usar una biblioteca con diferente precisión).