PHP est extrémement tolérant sur les conversions de types et essaiera toujours de faire le mieux et le plus naturellement possible.
N'en profitez quand même pas trop et prévoyez (et comprenez) toujours son comportement, cela vous évitera sans doute des déconvenues...
Un exemple de ce qu'on peut faire (mais évitez d'en abuser...) :
<?php
$truc = "5";
echo $truc." ".gettype($truc)."<br />\n";
$truc = $truc."2";
echo $truc." ".gettype($truc)."<br />\n";
$truc = $truc*5;
echo $truc." ".gettype($truc)."<br />\n";
$truc = $truc."2";
echo $truc." ".gettype($truc)."<br />\n";
$truc = $truc/100;
echo $truc." ".gettype($truc)."<br />\n";
?>Ce programme affichera :
5 string
52 string
260 integer
2602 string
260.2 double