Com o PDO MySQL a API C subjacente retorna uma estrutura de strings ao chamar
mysql_fetch_row()
. Como o PHP é uma linguagem de tipo flexível que converte automaticamente para inteiro conforme necessário, suspeito que os desenvolvedores do PDO optaram por devolvê-los como estão. Isso seria mais rápido do que procurar cada tipo de coluna e converter dinamicamente para um inteiro/float. Especificamente em relação ao float, um float nativo do PHP pode ser diferente do valor armazenado original quando convertido de uma string. Por exemplo, as colunas do MySQL suportam uma precisão enquanto os floats do PHP não. Deixar floats como uma string do banco de dados permite mais controle (por exemplo, escolher usar uma biblioteca com precisão diferente).