Ca y est. Je crois que j'ai trouvé une combine.
Il y aura sûrement moyen de faire un code plus propre. Mais j'ai le résultat que je recherchais. C'est l'essentiel.
function bestType($var)
{
$var = trim($var) ;
if ( $var === 'true' || $var === '1' ) $var = true ; // booleenne true
elseif ( $var === 'false' || $var === '' ) $var = false ; // booleenne false
else
{ // entière
$tmp = $var ;
settype($tmp,'int') ;
settype($tmp,'string') ;
if ( $var === $tmp ) $var = $tmp ;
else
{ // décimale
$tmp = $var ;
settype($tmp,'float') ;
settype($tmp,'string') ;
if ( $var === $tmp ) $var = $tmp ;
}
}
return $var ;
}