Les types en PHP
Le type en PHP fournit une information sur la valeur d’une variable et sur la façon de traiter cette variable. On ne traite pas les nombres et les lettres de la même manière, tout comme les litres et les kilogrammes ne sont pas utilisés de la même manière.
Une variable peut donc contenir plusieurs types de valeurs.
<?php
$nb = 2; // valeur numérique entière (type integer)
$chaine = "bonjour monde"; // chaîne de caractères (type string)
$nb2 = 2.7; // une valeur numérique flottante (type float)
$tab = array(1,2,3); // un tableau (type array)
$valeur = NULL; // absence de valeur (type null)
?>
Le type string
Le type string concerne les chaines de caractères, il est déclaré en délimitant la chaine par des guillemets ou des apostrophes.
<?php
$chaine1 = "une chaine de caractères"; // utilisation des guillemets
$chaine2 = 'une autre chaine de caractères'; // utilisation des apostrophes
?>
Echappement des caractère
La présence de guillemets ou d’apostrophes dans le contenu peuvent provoquer des erreurs. La solution consiste à échapper les guillemets ou les apostrophes contenus dans le texte, avec le caractère d’échappement, la barre oblique inverse (symbole \).
<?php
echo "La police \"Arial\" est très utilisée "; //echappement avec des guillemets
echo 'La police \'Arial\' est très utilisée '; // echappement avec des apostrophes
?>
En savoir plus sur les instructions d’ affichage en PHP.
Le type booléen (boolean)
Un booléen est une valeur pouvant être soit vraie, soit fausse.
<?php
$vrai = true;
$faux = false;
$faux2 = FALSE;
?>
Le mot clé true désigne un booléen vrai, et le mot clé false designe un booléen faux. Ces deux mots clés sont insensible à la casse (vous pouvez les utiliser aussi bien en minuscules qu’en majuscules).
Le type entier (integer)
Le type entier correspond à un nombre entier. Ce nombre doit commencer par un chiffre de 1 à 9. S’il commence par un zero, il sera compris en base octale (011 en base octale vaut 9 en base décimale).
Les entiers négatifs sont précédés par le signe –
<?php
$nb1 = 17; // entier positif
$nb2 = -7; // entier négatif
?>
Le type flottant (float ou double)
Le type flottant concerne les nombres à virgule. Pour déclarer un nombre flottant, il faut utiliser le point . et non la virgule. Vous pouvez aussi utiliser un e (majuscule ou minuscule) séparant l’exposant
<?php
$nb1 = 1.7; // le point fait office de virgule
$nb2 = 7E-2 // vaut 0.07
$nb3 = 1.3e3 // vaut 1300
?>
Le type tableau (array)
Php propose une autre forme de variable: le tableau. Un tableau permet de regrouper et mémoriser plusieurs valeurs. Vous pouvez créer un tableau avec la fonction array().
Chaque valeur est séparé par une virgule , et repéré dans le tableau par rapport à une clé. La clé peut correspondre à une valeur numérique – le tableau est indexé – ou à une chaine – le tableau est associatif
Pour récuperer une valeur du tableau, on appelle la variable et on précise entre les crochets [ ]la valeur de la clé
<?php
$tabi = array(3,12,58); // tableau indéxé
echo $tabi[0]; // affichera 3
$taba = array("nom"=>"dany","age"=>30,"taille"=>170); // tableau associatif
echo $taba["age"]; // affichera 30
?>
En savoir plus sur les tableaux et leurs manipulations
Transtypage
Php manipule les variables sans que vous ayez le souci de déclarer les types. Il interprete le type d’une variable en fonction de sa valeur et de son utilisation (voir les opérateurs).
<?php
echo "3" + 2; // affichera 5
echo 1 + "2 cartons"; // affichera 3
?>
Forcer la conversion
Php peut forcer la conversion d’une variable avec la fonction settype() qui prend en charge deux paramètres. Le premier est la variable à convertir et le second est le type de conversion.
La fonction inverse gettype() fournit l’information de type d’une variable
<?php
$val = "22";
settype($val,'integer'); // on force la conversion
echo gettype($val); // affichera integer
?>
Il existe aussi des fonctions dédiées à la conversion, comme intval()… (voir les fonctions utiles)
<?php
echo gettype( strval(13) ); // affichera string
?>
Modification de type
En PHP une variable peut récupérer la valeur d’une autre variable tout en modifiant son type. Il suffit d’affecter la nouvelle variable par l’ancienne précedée, entre parenthèses, du type
<?php
$ancienne = 1.3;
$nouvelle = (int)$ancienne;
echo $nouvelle; // affichera 1
?>
Les différentes valeurs à fournir dans les parenthèses sont :
- (int), (integer) : modification en integer
- (bool), (boolean) : modification en boolean
- (float), (double), (real) : modification en float
- (string) : modification en string
- (array) : modification en array
- (object) : modification en object
- (unset) : modification en NULL (PHP 5)