En PHP, contrairement à d’autres langages de programmation, nous n’avons pas besoin de préciser à priori le type de valeur qu’une variable va pouvoir stocker. Le PHP va en effet automatiquement détecter quel est le type de la valeur stockée dans telle ou telle variable, et nous allons ensuite pouvoir performer différentes opérations selon le type de la variable, ce qui va s’avérer très pratique pour nous !
Une conséquence directe de cela est qu’on va pouvoir stocker différents types de valeurs dans une variable au fil du temps sans se préoccuper d’une quelconque compatibilité. Par exemple, une variable va pouvoir stocker une valeur textuelle à un moment dans un script puis un nombre à un autre moment.
Les variables en PHP vont pouvoir stocker 8 grands types de données différents :
- Le type « chaine de caractères » ou
String
en anglais ; - Le type « nombre entier » ou
Integer
en anglais ; - Le type « nombre décimal » ou
Float
en anglais ; - Le type « booléen » ou
Boolean
en anglais ; - Le type « tableau » ou
Array
en anglais ; - Le type « objet » ou
Object
en anglais ; - Le type « NULL » qui se dit également
NULL
en anglais ; - Le type « ressource » ou
Resource
en anglais ;
Nous allons pour le moment nous concentrer sur les types simples de valeurs. Les autres types feront l’objet de leçons ou de parties dédiées dans ce cours.
Le type chaîne de caractères ou String
Le premier type de données qu’une variable va pouvoir stocker est le type String
ou chaîne de caractères. Une chaine de caractères est une séquence de caractères, ou ce qu’on appelle communément un texte.
Notez que toute valeur stockée dans une variable en utilisant des guillemets ou des apostrophes sera considérée comme une chaine de caractères, et ceci même dans le cas où nos caractères sont à priori des chiffres comme « 28 » par exemple.
Ici, notre première variable $prez
stocke la chaine de caractère « Je m’appelle Pierre ». Notre deuxième variable $age
, quant à elle, stocke le nombre 28. En revanche, notre troisième variable $age2
stocke la chaine de caractères « 28 » et non pas un nombre.
En effet, l’utilisation de guillemets ou d’apostrophe fait qu’une valeur est immédiatement considérée comme une chaine de caractères, quelle que soit cette valeur.
Pour s’en convaincre, on peut utiliser la fonction gettype()
qui nous permet de connaître le type d’une variable (en anglais). Nous verrons plus en détail ce que sont les fonctions plus tard dans ce cours.
Pour le moment, il vous suffit de savoir que la fonction gettype()
va renvoyer en résultat le type de la valeur stockée dans une variable. Nous allons ensuite utiliser une instruction echo
pour afficher ce résultat renvoyé.
<!DOCTYPE html> <html> <head> <title>Cours PHP & MySQL</title> <meta charset="utf-8"> <link rel="stylesheet" href="cours.css"> </head> <body> <h1>Titre principal</h1> <?php $prez = "Je m'appelle Pierre"; $age = 28; //Stocke le nombre 28 $age2 = "28"; //Stocke la chaine de caractères "28" echo "La variable \$age contient une valeur de type "; echo gettype($age); echo "<br>La variable \$age2 contient une valeur de type "; echo gettype($age2); ?> <p>Un paragraphe</p> </body> </html>
Le code ci-dessus peut vous sembler complexe à votre niveau car nous effectuons deux opérations sur la même ligne : tout d’abord, on demande à gettype()
va retourner le type de la valeur contenue dans notre variable puis on echo
le résultat renvoyé par gettype()
.
Ne cherchez pas forcément à tout comprendre immédiatement. Une nouvelle fois, nous reparlerons des fonctions plus tard dans ce cours. Pour le moment, nous voulions juste démontrer que $age2
contient bien une valeur de type « chaine de caractères » ou String
en anglais, ce qui est bien le cas.
Les types de données nombre entier (Integer) et nombre décimal (Float ou Double)
En PHP, on va pouvoir stocker deux types différents de donnée numéraires dans nos variables : le type Integer
, qui contient tous les nombres entiers positifs ou négatifs et le type Float
ou Double
, qui contient les nombres décimaux (nombres à virgule) positifs ou négatifs.
On va donc pouvoir stocker un entier ou un nombre décimal dans une variable. Pour cela, il suffit d’affecter le nombre à stocker à notre variable, sans guillemet ni apostrophe.
Attention cependant : lorsque l’on code, on utilise toujours les notations anglo-saxonnes. Ainsi, il faudra préciser des points à la place de nos virgules pour les nombres relatifs. Voyons immédiatement un exemple ensemble :
<!DOCTYPE html> <html> <head> <title>Cours PHP & MySQL</title> <meta charset="utf-8"> <link rel="stylesheet" href="cours.css"> </head> <body> <h1>Titre principal</h1> <?php $prez = "Je m'appelle Pierre"; $age = 28; //Stocke le nombre 28 $age2 = "28"; //Stocke la chaine de caractères "28" $distance = 2.84; echo "La variable \$age contient une valeur de type "; echo gettype($age); echo "<br>La variable \$distance contient une valeur de type "; echo gettype($distance); ?> <p>Un paragraphe</p> </body> </html>
Le type de données booléen (Boolean)
Une variable en PHP peut encore stocker une valeur de type booléen (Boolean
en anglais).
Le type booléen est un type qui ne contient que deux valeurs : les valeurs true
(vrai) et false
(faux). Ce type n’est pas courant dans la vie de tous les jours mais est très (très) utilisé en informatique.
Nous aurons souvent recours aux booléens dans ce cours car ils vont être à la base de nombreux mécanismes en PHP, et aurons donc largement le temps de comprendre tout l’intérêt de ces valeurs.
Pour stocker une valeur de type booléen dans une variable, pensez bien à ne pas entourer true
ou false
par des guillemets ou des apostrophes. Si vous utilisez des guillemets ou apostrophes, en effet, les valeurs seront considérées comme étant de type chaine de caractères ou String
et nous n’allons pas pouvoir les utiliser pour réaliser certaines opérations.
<!DOCTYPE html> <html> <head> <title>Cours PHP & MySQL</title> <meta charset="utf-8"> <link rel="stylesheet" href="cours.css"> </head> <body> <h1>Titre principal</h1> <?php $prez = "Je m'appelle Pierre"; $age = 28; //Stocke le nombre 28 $age2 = "28"; //Stocke la chaine de caractères "28" $distance = 2.84; $vrai = true; $faux = false; echo "La variable \$vrai contient une valeur de type "; echo gettype($vrai); echo "<br>La variable \$faux contient une valeur de type "; echo gettype($faux); ?> <p>Un paragraphe</p> </body> </html>
Le type de données Null
Le type de données Null
est un type un peu particulier puisqu’il correspond à l’absence de valeur et sert donc à représenter des variables vides en PHP.
Ce type de valeur ne contient qu’une seule valeur : la valeur NULL
qui correspond elle-même à l’absence de valeur. Il est un peu tôt pour vous faire comprendre l’intérêt de ce type de valeurs ; nous en reparlerons plus tard dans ce cours lorsque nous aurons à l’utiliser.
Notez que si vous déclarez une nouvelle variable sans lui affecter de valeur (ce qui est déconseillé de manière générale), cette variable sera automatiquement de type Null
.
<!DOCTYPE html> <html> <head> <title>Cours PHP & MySQL</title> <meta charset="utf-8"> <link rel="stylesheet" href="cours.css"> </head> <body> <h1>Titre principal</h1> <?php $prez = "Je m'appelle Pierre"; $age = 28; //Stocke le nombre 28 $age2 = "28"; //Stocke la chaine de caractères "28" $distance = 2.84; $vrai = true; $faux = false; $vide = NULL; $vide2; echo "La variable \$vide contient une valeur de type "; echo gettype($vide); echo "<br>La variable \$vide2 contient une valeur de type "; echo gettype($vide2); ?> <p>Un paragraphe</p> </body> </html>
Les types de données PHP tableau (Array) et objet (Object)
Les types de données Array
et Object
sont des types de données complexes particuliers qui méritent de faire chacun l’objet de chapitres séparés.
Nous n’étudierons donc pas ces deux types pour le moment car n’avons pas les connaissances suffisantes pour bien les comprendre.
Sachez simplement que l’on va pouvoir stocker plusieurs valeurs d’un coup à l’intérieur d’une variable en lui assignant des valeurs de type Array
(tableau) ou Object
(objet).
Le type de données ressource (Resource)
Une ressource est une variable particulière qui contient une référence vers une ressource externe au PHP, comme dans le cas d’une variable qui représente la connexion vers une base de données par exemple.
Là encore, ce type de données est complexe et nécessite d’avoir une bonne vision d’ensemble du langage pour être bien compris. Nous l’étudierons donc plus tard.