Jonglerie de types de variables (jonglerie) PHP n'exige pas (ou ne prend pas en charge) la déclaration d'une variable pour spécifier son type de variable ; le type d'une variable est déterminé par le contexte dans lequel la variable est utilisée, c'est-à-dire si vous donnez une variable. Si var reçoit une valeur de chaîne, var devient une variable de chaîne. Si vous attribuez un entier à var, il devient une variable entière. Un exemple de PHP convertissant automatiquement les types de variables est l'opérateur d'addition '+'. Si un opérande est un double, alors tous les opérandes sont évalués comme des doubles et le résultat est également un double. Sinon, les opérandes seront considérés comme des entiers et le résultat sera un entier. Notez que cela n'affecte pas le type de variable de chaque opérande lui-même, le seul changement est la façon dont les opérandes sont traités lors du calcul. |
|
Si vous pensez que les deux dernières expressions de l'exemple ci-dessus semblent un peu étranges, veuillez consulter la section « Conversion de chaîne ». Si vous souhaitez forcer l'évaluation d'une variable comme un type fixe, consultez la section "Casting". Si vous souhaitez changer le type d'une variable, veuillez consulter la description de la fonction "settype()". Déterminer le type d'une variable Puisque PHP détermine lui-même le type des variables et les convertit généralement selon les besoins, le type d'une variable particulière n'est pas toujours évident. PHP inclut des fonctions pour connaître le type de cette variable. Ces fonctions sont gettype(), is_long(), is_double(), is_string(), is_array() et is_object() La conversionde type en PHP est à peu près la même qu'en C : vous aurez besoin du type écrit en. parenthèses avant la variable à contraindre. |
|
Les méthodes de coercition suivantes sont autorisées : (int), (integer) - contraindre à un entier (réel), (double), (float) - contraindre à une double précision (chaîne) - contraindre à une chaîne (tableau) - contraindre à un tableau (objet ) – Contraint à un objet. Notez que les tabulations et les espaces sont autorisés entre parenthèses, donc les instructions suivantes sont équivalentes : $foo = (int) $bar; $foo = (int) $bar conversion Lorsqu'une chaîne est évaluée comme : une valeur numérique, son résultat et son type sont déterminés comme décrit ci-dessous. Si cette chaîne contient les caractères '.', 'e' ou 'E', elle est traitée comme une variable de type double, sinon elle est traitée comme un entier. La valeur de cette chaîne est déterminée par le préfixe. Si la chaîne commence par des données numériques valides, ces données numériques constituent la valeur sur laquelle la chaîne est évaluée. Sinon, la valeur est nulle. Les données numériques valides suivent la notation suivante, suivie d'un ou plusieurs chiffres (pouvant inclure un point décimal), suivi d'un exposant facultatif. L'exposant est formé d'un ou plusieurs chiffres suivis de « e » ou « E ». |
|
Pour plus d'informations, consultez la section du manuel Unix sur strtod(3). |