Med PDO MySQL det underliggande C API
returnerar en struktur av strängar när du anropar mysql_fetch_row()
. Eftersom PHP är ett löst skrivet språk som automatiskt kastar till heltal vid behov, misstänker jag att PDO-utvecklarna valde att returnera dem som de är. Detta skulle vara snabbare än att slå upp varje kolumntyp och dynamiskt casta till ett heltal/float.
Specifikt när det gäller float, kan en inbyggd PHP float vara annorlunda än det ursprungliga lagrade värdet när det konverteras från en sträng. Till exempel stöder MySQL-kolumner en precision medan PHP-floats inte gör det. Om du lämnar flyter som en sträng från databasen får du mer kontroll (t.ex. genom att välja att använda ett bibliotek med olika precision).