mardi 16 août 2016

LES VARIABLES


Rien qu'avec leur nom, vous devez vous dire que c'est quelque chose qui change tout le temps. En effet, le propre d'une variable c'est de pouvoir varier (belle lapalissade, n'est-ce pas ? ;-)). Mais qu'est-ce que c'est concrètement ?

Une variable, c'est une petite information stockée en mémoire temporairement. Elle n'a pas une grande durée de vie. En PHP, la variable (l'information) existe tant que la page est en cours de génération. Dès que la page PHP est générée, toutes les variables sont supprimées de la mémoire car elles ne servent plus à rien. Ce n'est donc pas un fichier qui reste stocké sur le disque dur mais une petite information temporaire présente en mémoire vive.
C'est à vous de créer des variables. Vous en créez quand vous en avez besoin pour retenir des informations.

Un nom et une valeur

Une variable est toujours constituée de deux éléments :
  • son nom : pour pouvoir la reconnaître, vous devez donner un nom à votre variable. Par exempleage_du_visiteur ;
  • sa valeur : c'est l'information qu'elle contient, et qui peut changer. Par exemple : 17.
Ici, je vous ai donné l'exemple d'une variable appelée age_du_visiteur qui a pour valeur 17.
On peut modifier quand on veut la valeur de cette variable, faire des opérations dessus, etc. Et quand on en a besoin, on l'appelle (par son nom), et elle nous dit gentiment la valeur qu'elle contient.
Par exemple, on peut imaginer l'échange suivant :
  • « Hep ! Toi, la variable age_du_visiteur, que contiens-tu ? »
  • « 17 »
  • « Merci ! »
Vous allez voir que ces petites bébêtes, même si elles peuvent vous sembler encore un peu floues, seront vraiment indispensables pour votre site en PHP.
Par exemple, vous pourrez retenir temporairement le nom du visiteur. Dans une variablenom_du_visiteur, vous stockerez son pseudo, mettons « M@teo21 ». Dès que vous en aurez besoin vous pourrez l'utiliser, notamment pour afficher un message de bienvenue personnalisé : « Salut M@teo21 ! Bienvenue sur mon site ! ».

Les différents types de variables

Les variables sont capables de stocker différents types d'informations. On parle de types de données. Voici les principaux types à connaître.
  • Les chaînes de caractères (string) : les chaînes de caractères sont le nom informatique qu'on donne au texte. Tout texte est appelé chaîne de caractères. En PHP, ce type de données a un nom : string. On peut stocker des textes courts comme très longs au besoin.
    Exemple : « Je suis un texte ». Une chaîne de caractères est habituellement écrite entre guillemets ou entre apostrophes (on parle de guillemets simples) : 'Je suis un texte'. Les deux fonctionnent mais il y a une petite différence que l'on va découvrir plus loin.
  • Les nombres entiers (int) : ce sont les nombres du type 1, 2, 3, 4, etc. On compte aussi parmi eux les entiers relatifs : -1, -2, -3…
    Exemple : 42.
  • Les nombres décimaux (float) : ce sont les nombres à virgule, comme 14,738. On peut stocker de nombreux chiffres après la virgule, ce qui devrait convenir pour la plupart des usages que vous en ferez. Attention, les nombres doivent être écrits avec un point au lieu de la virgule (c'est la notation anglaise).
    Exemple : 14.738.
  • Les booléens (bool) : c'est un type très important qui permet de stocker soit vrai soit faux. Cela permet de retenir si une information est vraie ou fausse. On les utilise très fréquemment. On écrit true pour vrai, et false pour faux.
    Exemple : true.
  • Rien (NULL) : aussi bizarre que cela puisse paraître, on a parfois besoin de dire qu'une variable ne contient rien. Rien du tout. On indique donc qu'elle vaut NULL. Ce n'est pas vraiment un type de données, mais plutôt l'absence de type.
La figure suivante vous résume ce qu'il faut retenir des différents types d'informations qu'est capable de stocker PHP dans les variables.


Types de données
Types de données

Cela devrait vous donner une idée de tout ce qu'est capable de stocker PHP en mémoire. Ces types suffiront pour la création de notre site !
Maintenant, passons aux choses concrètes. Comment créer une variable et comment afficher ce qu'elle contient ?

Affecter une valeur à une variable

Premières manipulations de variables

Je vous propose de commencer par regarder ce code d'exemple :
<?php
$age_du_visiteur = 17;
?>
Avec ce code PHP, on vient en fait de créer une variable :
  • son nom est age_du_visiteur ;
  • sa valeur est 17.



.
Pour le nom, évitez aussi les accents, les cédilles et tout autre symbole : PHP ne les apprécie pas trop…}
Analysons dans le détail le code qu'on vient de voir.
  • D'abord, on écrit le symbole « dollar » ($) : il précède toujours le nom d'une variable. C'est comme un signe de reconnaissance si vous préférez : ça permet de dire à PHP « J'utilise une variable ». Vous reconnaîtrez toujours qu'il y a une variable par la présence du symbole « dollar » ($).
  • Ensuite, il y a le signe « égal » (=) : celui-là c'est logique, c'est pour dire que $age_du_visiteur est égal à…
  • À la suite, il y a la valeur de la variable, ici 17.
  • Enfin, il y a l'incontournable point-virgule (;) qui permet de terminer l'instruction.



Supposons maintenant que l'on écrive ceci :
<?php
$age_du_visiteur = 17; // La variable est créée et vaut 17
$age_du_visiteur = 23; // La variable est modifiée et vaut 23
$age_du_visiteur = 55; // La variable est modifiée et vaut 55
?>
Que se passera-t-il ? La variable $age_du_visiteur va être créée et prendre pour valeur, dans l'ordre : 17, 23, puis 55. Tout cela va très vite, l'ordinateur étant très rapide vous n'aurez pas le temps de dire « ouf » que tout ce code PHP aura été exécuté.
Comme tout à l'heure, rien ne s'affiche. Seulement, quelque part dans la mémoire de l'ordinateur, une petite zone nommée age_du_visiteur vient de prendre la valeur 17, puis 23, puis 55.

Utiliser les types de données

Vous vous souvenez des types de données dont je vous ai parlé il y a quelques minutes ? Les stringint,float… Voici un exemple de variable pour chacun de ces types.
Le type string (chaîne de caractères)
Ce type permet de stocker du texte. Pour cela, vous devez entourer votre texte de guillemets doubles "" ou de guillemets simples '' (attention, ce sont des apostrophes).
Voici deux exemples, l'un avec des guillemets simples et l'autre avec des guillemets doubles :
<?php
$nom_du_visiteur = "Mateo21";
$nom_du_visiteur = 'Mateo21';
?>
Attention, petit piège : si vous voulez insérer un guillemet simple alors que le texte est entouré de guillemets simples, il faut l'échapper comme on l'a vu précédemment en insérant un antislash devant. Il en va de même pour les guillemets doubles. Voici un exemple pour bien comprendre :
<?php
$variable = "Mon \"nom\" est Mateo21";
$variable = 'Je m\'appelle Mateo21';
?>
En effet, si vous oubliez de mettre un antislash, PHP va croire que c'est la fin de la chaîne et il ne comprendra pas le texte qui suivra (vous aurez en fait un message Parse error).
Vous pouvez en revanche insérer sans problème des guillemets simples au milieu de guillemets doubles et inversement :
<?php
$variable = 'Mon "nom" est Mateo21';
$variable = "Je m'appelle Mateo21";
?>
La différence est subtile, faites attention. Il y a d'ailleurs une différence plus importante entre les deux types de guillemets dont nous parlerons plus loin.
Le type int (nombre entier)
On vient de l'utiliser pour nos exemples précédents. Il suffit tout simplement d'écrire le nombre que vous voulez stocker, sans guillemets.
<?php
$age_du_visiteur = 17;
?>
Le type float (nombre décimal)
Vous devez écrire votre nombre avec un point au lieu d'une virgule. C'est la notation anglaise.
<?php
$poids = 57.3;
?>
Le type bool (booléen)
Pour dire si une variable vaut vrai ou faux, vous devez écrire le mot true ou false sans guillemets autour (ce n'est pas une chaîne de caractères !). Je vous conseille de bien choisir le nom de votre variable pour que l'on comprenne ce que ça signifie. Voyez vous-mêmes :
<?php
$je_suis_un_zero = true;
$je_suis_bon_en_php = false;
?>
Une variable vide avec NULL
Si vous voulez créer une variable qui ne contient rien, vous devez lui passer le mot-clé NULL (vous pouvez aussi l'écrire en minuscules : null).
<?php
$pas_de_valeur = NULL;
?>
Cela sert simplement à indiquer que la variable ne contient rien, tout du moins pour le moment.

Afficher et concaténer des variables

Nous avons appris à créer des variables et à stocker des informations à l'intérieur. Mais pour le moment, aucun de nos codes source n'affiche quoi que ce soit.

Afficher le contenu d'une variable

Vous vous souvenez que l'on peut afficher du texte avec echo ? On peut aussi s'en servir pour afficher la valeur d'une variable !
<?php
$age_du_visiteur = 17;
echo $age_du_visiteur;
?>
Comme vous le voyez, il suffit d'écrire le nom de la variable que vous voulez afficher.
Au fait, on ne doit pas mettre de guillemets après le echo comme tu nous as appris ?
Non, quand il s'agit d'une variable on ne met pas de guillemets autour.
Créez un fichier PHP avec ce code source pour le tester. Inutile de mettre tout le code HTML autour, ce n'est pas grave, ce ne sera pas une « vraie » page HTML valide mais c'est bien suffisant pour nos tests. Vous devriez voir, ainsi que vous le montre la figure suivante, le résultat s'afficher sur un fond blanc dans votre navigateur.


Affiche une variable
Affiche une variable

Le nombre contenu à l'intérieur de la variable s'affiche dans la page (ici 17).

La concaténation

Non, ce n'est pas une insulte. Cela signifie assemblage. ;-)
En fait, écrire 17 tout seul comme on l'a fait n'est pas très parlant. On aimerait écrire du texte autour pour dire : « Le visiteur a 17 ans ». La concaténation est justement un moyen d'assembler du texte et des variables.
Comment faire cela ? Les petits malins auront l'idée d'écrire trois instructions echo :
<?php
$age_du_visiteur = 17;
echo "Le visiteur a ";
echo $age_du_visiteur;
echo " ans";
?>
Vous pouvez tester, ça fonctionne, comme vous le montre la figure suivante.


Ajouter du texte autour d'une variable
Ajouter du texte autour d'une variable

Mais il y a plus malin. On peut tout faire sur une ligne. Pour cela, il y a deux méthodes et c'est justement maintenant que le fait d'utiliser des guillemets simples ou doubles va faire la différence.
Concaténer avec des guillemets doubles
Avec des guillemets doubles, c'est le plus simple. Vous pouvez écrire le nom de la variable au milieu du texte et il sera remplacé par sa valeur.
Concrètement, essayez ce code :
<?php
$age_du_visiteur = 17;
echo "Le visiteur a $age_du_visiteur ans";
?>
Ça affiche : Le visiteur a 17 ans.
En effet, lorsque vous utilisez des guillemets doubles, les variables qui se trouvent à l'intérieur sont analysées et remplacées par leur vraie valeur. Ça a le mérite d'être une solution facile à utiliser, mais je vous recommande plutôt celle des guillemets simples, que nous allons voir dès à présent.
Concaténer avec des guillemets simples
Si vous écrivez le code précédent entre guillemets simples, vous allez avoir une drôle de surprise :
<?php
$age_du_visiteur = 17;
echo 'Le visiteur a $age_du_visiteur ans'; // Ne marche pas
?>
Ça affiche : Le visiteur a $age_du_visiteur ans.
Miséricorde ! On ne peut pas concaténer du texte avec des guillemets simples ?
Eh bien si ! Mais cette fois, il va falloir écrire la variable en dehors des guillemets et séparer les éléments les uns des autres à l'aide d'un point. Regardez :
<?php
$age_du_visiteur = 17;
echo 'Le visiteur a ' . $age_du_visiteur . ' ans';
?>
Cette fois, ça affiche bien comme on voulait : Le visiteur a 17 ans.
Ça a l'air bien plus compliqué, mais en fait c'est cette méthode qu'utilisent la plupart des programmeurs expérimentés en PHP. En effet, le code est plus lisible, on repère bien la variable alors que tout à l'heure elle était comme « noyée » dans le texte. D'autre part, votre éditeur de texte devrait vous colorer la variable, ce qu'il ne faisait pas pour le code précédent.



Dorénavant, j'écrirai toutes mes chaînes de caractères entre guillemets simples (à de rares exceptions près) et j'utiliserai la seconde méthode de concaténation qu'on vient de voir. Prenez le temps de vous habituer à l'utiliser et cela finira par devenir complètement naturel pour vous.

Faire des calculs simples

On va maintenant faire travailler votre ordinateur, et vous allez voir qu'il encaisse les calculs sans broncher. Eh oui, PHP sait aussi faire des calculs !
Oh je vous rassure, on ne va pas faire des calculs tordus, juste des additions, des soustractions, des multiplications et des divisions. C'est du niveau de tout le monde, non ? ;-)
Ici comme vous vous en doutez, on ne va travailler que sur des variables qui contiennent des nombres.

Les opérations de base : addition, soustraction…

Les signes à connaître pour faire les quatre opérations de base (vous les trouverez sur votre pavé numérique, à droite du clavier en principe) sont représentés par le tableau suivant.
Symbole
Signification
+
Addition
-
Soustraction
*
Multiplication
/
Division
Après, pour vous en servir, ça coule de source. Voici quelques exemples :
<?php
$nombre = 2 + 4; // $nombre prend la valeur 6
$nombre = 5 - 1; // $nombre prend la valeur 4
$nombre = 3 * 5; // $nombre prend la valeur 15
$nombre = 10 / 2; // $nombre prend la valeur 5
// Allez on rajoute un peu de difficulté
$nombre = 3 * 5 + 1; // $nombre prend la valeur 16
$nombre = (1 + 2) * 2; // $nombre prend la valeur 6
?>
Allez quoi, boudez pas, un peu de calcul mental ça n'a jamais fait de mal à personne.
Vérifiez mes calculs, comme vous pouvez le voir il n'y a rien de bien compliqué dans tout ça.
Seulement, il ne faut pas avoir peur de « jongler » avec les variables.
Voici des calculs avec plusieurs variables :
<?php
$nombre = 10;
$resultat = ($nombre + 5) * $nombre; // $resultat prend la valeur 150
?>
C'est de la pure logique, je ne peux rien vous dire de plus.
Si vous avez compris ces bouts de code, vous avez tout compris.

Le modulo

Il est possible de faire un autre type d'opération un peu moins connu : le modulo. Cela représente le reste de la division entière.
Par exemple, 6 / 3 = 2 et il n'y a pas de reste. En revanche, 7 / 3 = 2 (car le nombre 3 « rentre » 2 fois dans le nombre 7) et il reste 1. Vous avez fait ce type de calculs à l'école primaire, souvenez-vous !
Le modulo permet justement de récupérer ce « reste ». Pour faire un calcul avec un modulo, on utilise le symbole %.
<?php
$nombre = 10 % 5; // $nombre prend la valeur 0 car la division tombe juste
$nombre = 10 % 3; // $nombre prend la valeur 1 car il reste 1
?>

Et les autres opérations ?

Je passe sous silence les opérations plus complexes telles que la racine carrée, l'exponentielle, la factorielle, etc. Toutes ces opérations peuvent être réalisées en PHP mais il faudra passer par ce qu'on appelle des fonctions, une notion que l'on découvrira plus tard. Les opérations basiques que l'on vient de voir sont amplement suffisantes pour la programmation PHP de tous les jours.

En résumé

  • Une variable est une petite information qui reste stockée en mémoire le temps de la génération de la page PHP. Elle a un nom et une valeur.
  • Il existe plusieurs types de variables qui permettent de stocker différents types d'informations : du texte (string), des nombres entiers (int), des nombres décimaux (float), des booléens pour stocker vrai ou faux (bool), etc.
  • En PHP, un nom de variable commence par le symbole dollar : $age par exemple.
  • La valeur d'une variable peut être affichée avec l'instruction echo.
  • Il est possible de faire des calculs mathématiques entre plusieurs variables : addition, soustraction, multiplication…
Source: OpenClassrooms

Aucun commentaire:

Enregistrer un commentaire