Types de PHP
Une variable peut doit être d'un certain type, mais dans les types de PHP ne sont pas explicitement définis, au lieu du type de variable est déterminée par le contexte dans lequel la variable d' est utilisé. Cela signifie donc que les variables devenir un type quand ils se voient attribuer une valeur qui a un type.
Conversion de type automatique
PHP convertit automatiquement d'un type à l'autre, ce qui peut provoquer des résultats inattendus. Par exemple la conversion de faux à une chaîne peut avoir des résultats inattendus.
value = false ; $ Valeur = false;
" The value is $ value " ; echo "La valeur est $ valeur";
returns : The value is / / Retourne: La valeur est
Pour résoudre ce genre de problèmes PHP a besoin d'être instruit comment faire face à la variable.
value = false ; $ Valeur = false;
" The value is " . ( int ) $ value ; echo "La valeur est" (int) $ value.;
returns : The value is 0 / / Retourne: la valeur est 0
Comme vous pouvez le voir jeter une variable dont vous avez besoin d'utiliser le type de lieu que vous voulez lancer au devant de la variable entre parenthèses. Ceci s'applique alors ce type de la variable à transtyper. Notez que vous devez faire attention à ce que vous lancez car il peut avoir des résultats inattendus. Pour la coulée par exemple une fraction d'un nombre entier viendront compléter la fraction entier le plus proche.
Conversion de chaînes avec des nombres
Saviez-vous que vous pouvez ajouter une phrase et un certain nombre pour former un autre numéro? Eh bien, en PHP, vous pouvez! Unfortunatley cela peut conduire à des résultats inattendus si vous avez besoin de faire attention comment vous gérer cela.
value = 1 + " 4.5 " ; $ Valeur = 1 + "4.5";
is float with the value 5.5 / / Est du type float avec la valeur 5.5
value = 1 + " tom " ; $ Valeur = 1 + "tom";
is integer with the value 1 / / Est un nombre entier avec la valeur 1
value = 1 + " 2 Green Bottles " ; $ Valeur = 1 + "2 Green Bottles";
is integer with the value 3 / / Est un nombre entier avec la valeur 3
value = 1 + " Green Bottles 2 " ; $ Valeur = 1 + "Green Bottles 2";
is integer with the value 3 / / Est un nombre entier avec la valeur 3
Comme vous pouvez le voir lors de l'ajout d'une chaîne à un certain nombre, si la première partie de la chaîne est un nombre-ci est ensuite additionnés. Tous les numéros d'autres sont ignorés. Si vous ajoutez une chaîne avec un flotteur en elle à un nombre entier, le résultat est un flotteur. Encore une fois la bonne façon de résoudre ce problème est de détecter et ou cast de la variable du type correct.
À détecter le type d'une variable
Un type de variable peut être identifiée en utilisant les fonctions ci-dessous il suffit de passer la variable à la fonction désirée et elle renverra vrai si elle est de ce type. C'est la technique a pour la programmation défensive .
var = " hello " ; $ Var = "bonjour";
Returns true if a variable is a BOOLEAN / / Retourne true si une variable est un booléen
$ var ) is_bool ($ var)
Returns true if a variable is a STRING / / Retourne true si une variable est une chaîne
$ var ) is_string ($ var)
Returns true if a variable is a NUMERIC STRING / / Retourne true si une variable est une chaîne numérique
$ var ) is_numeric ($ var)
Returns true if a variable is an INTEGER / / Retourne true si une variable est un nombre entier
$ var ) is_int ($ var)
Returns true if a variable is an ARRAY / / Retourne true si une variable est un tableau
$ var ) is_array ($ var)
Returns true if a variable is an OBJECT / / Retourne true si une variable est un objet
$ var ) is_object ($ var)
Returns true if a variable is NULL / / Retourne true si une variable vaut NULL
$ var ) is_null ($ var)
Returns true if a variable is a FLOAT / / Retourne true si une variable est un float
$ var ) is_float ($ var)
Ceci est important car une fois un type particulier de variables a été identifié, vous pouvez alors être certain de l'effet de toutes les opérations effectuées à ce sujet.
Pas de commentaires ont été fournis.
Écrit par Dominic Skinner
Dernière mise à jour: 25/10/2011 16:00:38