En PHP, vous pouvez transtyper quelque chose comme un objet comme celui-ci; (objet) ou vous pouvez utiliser settype ($ var, "objet") - mais ma question est quelle est la différence entre les deux?
Lequel est le plus efficace / meilleur à utiliser? Pour le moment, je trouve que using (objet) fait le travail, mais je me demande aussi pourquoi il existe une fonction settype.
Réponses:
17 pour la réponse № 1La conversion change le traitement de la variable dans le contexte actuel, settype la modifie de manière permanente.
$value = "100"; //Value is a string
echo 5 + (int)$value; //Value is treated like an integer for this line
settype($value,"int"); //Value is now an integer
En gros, settype est un raccourci pour:
$value = (type)$value;
4 pour la réponse № 2
settype()
modifie la variable réelle à laquelle il a été passé, mais pas le passage entre parenthèses
Si tu utilises settype
sur $var
pour le changer en entier, il perdra définitivement la partie décimale:
$var = 1.2;
settype($var, "integer");
echo $var; // prints 1, because $var is now an integer, not a float
Si vous venez de faire un casting, la variable d'origine reste inchangée.
$var = 1.2;
$var2 = (integer) $var;
echo $var; // prints 1.2, because $var didn"t change type and is still a float
echo $var2; // prints 1