/ / Utiliser settype en PHP au lieu de transtyper en utilisant des crochets, quelle est la différence? - php, conversion, conversion de type

Utiliser settype en PHP au lieu de transtyper avec des crochets, quelle est la différence? - php, conversion, conversion de type

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 № 1

La 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