T: / Articles techniques / PHP
La notion de variables est le premier concept clé de la programmation.
Un concept clé en programmation, qu’on retrouve dans les langages est celui de variables. Ce sont les variables qui vont nous permettre de stocker et manipuler des informations tout au long d’un programme.
Je t’invite à avoir en parallèle de cet article un espace pour exécuter en direct du code PHP de façon à réaliser de ton côté les exemples de code au fur et à mesure pour bien comprendre comment tout cela fonctionne.
En PHP, il existe plusieurs types de variables que nous allons passer en revue, avec les opérateurs de base qui permettent de les manipuler :
Une variable sert à stocker une information. On peut imaginer ça comme un petit tiroir qu’on ouvrirait et on viendrait y mettre une certaine information. Pour cela, il faut donner un nom au tiroir et l’ouvrir donc.
Pour déclarer une variable en PHP, on utilisera le caractère $ (dollar) puis on donne un nom à notre variable. Disons qu’on souhaite stocker la phrase « hello world » (comme vu au 1er chapitre). On va donc créer une variable $phrase et on va utiliser le caractère = (égal) pour mettre une première information dans cette variable.
En PHP, cela donne :
$phrase = 'Hello world';
On le verra juste après, les chaines de caractères, comme ‘hello world’ sont écrites entre quotes. Et en PHP, chaque instruction se termine par un ; (point virgule).
En PHP, mais cela vaut pour tous les langages de programmation, le nommage est primordial. Et il commence dès les variables. Il est important que le nom de la variable décrive l’information qu’elle contient. Un nom de variable peut contenir plusieurs mots. Dans ce cas, on utilisera du camelCase, c’est à dire qu’on démarre par une minuscule puis on met une majuscule à chaque changement de mot. Et on utilise aucun caractère spécial. Par exemple :
$maSuperPhraseEnPHP = 'Hello World';
La valeur d’une variable peut changer au cours de l’exécution d’un programme. Avec le signe égal, on peut redéfinir la valeur d’une variable :
$mot = 'Bonjour'; // $mot contient 'Bonjour'
$mot = 'Au revoir'; // $mot contient désormais 'Au revoir'
Un commentaire consiste à écrire du code qui ne sera pas exécuté. Cela permet de décrire et d’expliquer son code. En PHP, on peut faire des commentaires de 2 façons :
// Une seule ligne de commentaires
/**
*
* Un bloc de commentaires
*
*/
Il est assez courant de voir les 2 utilisés au sein d’un même code. Cela dépend de l’explication apportée par le commentaire. Je fais cet aparté maintenant car on retrouvera des commentaires dans les exemples de code ci-dessous pour préciser les différentes lignes de code !
Une des premières informations que peut contenir une variable en PHP est donc du texte (ou chaine de caractères). Il n’y a pas de limite au nombre de caractères que peut contenir une chaine de caractères :
$petitMot = 'Bonjour'; // 6 caractères
$uneSeuleLettre = 'a'; // 1 caractère
$chaineVide = ''; // 0 caractère
Et oui, une chaine de caractères peut aussi ne contenir aucun caractère !
Grâce à echo, on peut ensuite afficher directement le contenu de notre variable, de cette façon :
echo $petitMot; // affiche "Bonjour"
echo $uneSeuleLettre; // affiche "a"
echo $chaineVide; // n'affiche rien
// Attention, si tu écris tout comme ça, tu verras sur ton écran "Bonjoura".
// En effet, tu n'as pas spécifié l'affichage d'un espace ou d'un saut de ligne !
En PHP on peut créer des chaines de caractères en utilisant des quotes simples (‘) ou des quotes doubles (« ). Ce code est similaire :
$mot1 = 'Bonjour';
$mot2 = "Bonjour";
Une différence majeure se trouve dans les possibilités de concaténation. Conca-quoi ?
La concaténation permet de « coller » entre elles des chaines de caractères.
L’opérateur de concaténation est le . (point). Voici un exemple :
$debutPhrase = 'Je veux apprendre';
$langage = 'le PHP';
// Je peux coller mes 2 variables de cette façon :
echo $debutPhrase . $langage;
// Ou encore :
$phraseComplete = $debutPhrase . $langage;
echo $phraseComplete;
Une fois créé, une variable peut être utilisée pour initialiser l’information d’une autre variable. Il faut considérer qu’un programme PHP se lit du haut vers le bas, mais chaque ligne se lit de la droite vers la gauche. Quand une variable se trouve à droite d’un signe égal, il faut bien s’assurer que celle-ci contient déjà une valeur, sinon le programme présentera une erreur.
Tu l’as peut être remarqué mais il manque quelque chose dans mon code précédent, un espace ! Si je regarde l’affichage de mon code, cela donne « Je veux apprendrele PHP ». On peut alors faire :
$debutPhrase = 'Je veux apprendre';
$langage = 'le PHP';
$espace = ' '; // Une chaine de caractères de 1 caractère qui est un espace
$phraseComplete = $debutPhrase . $espace . $langage;
echo $phraseComplete;
Revenons à nos quotes ! Avec des doubles quotes, on va pouvoir se passer du point (.) et intégrer les variables directement dans la chaine de caractères :
$debutPhrase = 'Je veux apprendre';
$langage = 'le PHP';
$phraseComplete = "$debutPhrase $langage"; // Plus besoin de $espace puisque l'espace est déjà dans la chaine de caractères
A ce stade, il n’y a pas de règle particulière sur quelle technique utiliser. Cela va dépendre du problème que tu as à résoudre, et ou des conventions définies dans ton projet.
Dernier point à connaitre pour le moment sur la concaténation concerne l’opérateur « condensé » .= (point égal). Ces 2 codes sont similaires :
// Version 1
$debutPhrase = 'Bonjour';
$debutPhrase = $debutPhrase . ', Comment allez vous ?';
// Version 2 avec l'opérateur condensé
$debutPhrase = 'Bonjour';
$debutPhrase .= ', Comment allez vous ?';
Un peu d’explications :
On a vu le texte, voyons maintenant les nombres ! On peut stocker des valeurs entières ou des valeurs décimales. Cette fois-ci, plus besoin de quotes :
$valeurEntiere = 3;
$valeurDecimale = 3.14; // On utilise le point comme séparateur des décimales
Les opérations arithmétiques classiques sont disponibles en PHP :
On peut manipuler soit des variables, soit des nombres pour réaliser des calculs. Les entiers et décimaux peuvent être mélangés.
Voici quelques exemples :
// Additions
$calcul = 3 + 4;
$valeur = 3;
$calcul = 4 + $valeur;
$calcul = 4 + $valeur + $valeur + 2.6;
// Soustraction
$calcul = 4 - 3;
$calcul = 4 - 8;
$autreValeur = 10;
$calcul = $autreValeur - 2 - 1.3;
// Multiplication
$calcul = 3 * 4;
$encoreUneValeur = 7;
$calcul = 3 * $encoreUneValeur * 3.2;
// Division
$calcul = 10 / 2;
$uneDernierValeur = 9;
$calcul = 84743 / $uneDerniereValeur;
$calcul = 36 / 0; // ATTENTION, ce code génère une erreur car la division par zéro n'est mathématiquement pas possible
// Et on peut bien sûr tout mélanger comme on veut
// Et utiliser des parenthèses pour prioriser les calculs, sinon les règles classiques de mathématiques s'appliquent
$calcul = (4 + 5) * $valeur - 8 / ($encoreUneValeur + 1);
Un autre opérateur intéressant est le % qui permet de récupérer le reste de la division euclidienne. Par exemple :
$calcul = 10 % 2; // Vaut 0 car quand on divise 10 par 2, ça donne 5 et reste 0
$calcul = 11 % 2; // Vaut 1 car quand on divise 11 par 2, ça donne 5 et reste 1
C’est très utilisé quand on cherche à savoir si un nombre est pair ou un multiple d’une certaine valeur.
Comme pour la concaténation, on a des opérateurs condensés en PHP pour les opérations arithmétiques classiques :
Au delà de réduire le nombre de caractères utilisés dans le code, ces opérateurs sont intéressants quand les calculs vont s’enchainer au sein d’une portion de code.
Par exemple lorsqu’on cherche à faire une somme :
$somme = 0; // On va initialiser la somme à zéro
$somme += 3;
$somme += 5;
// ...
$somme += $uneValeur;
// etc.
// On va incrémenter la somme au fur et à mesure du programme
Par exemple lorsqu’on cherche à faire un produit :
$produit = 1; // Si on démarre à 0 comme pour une somme, 0 x quelque chose donnera toujours 0
$produit *= 2;
$produit *= 1.5;
// etc.
// On augmente le produit au fur et à mesure du programme
Il existe 2 autres opérateurs qui servent à ajouter 1 ou retirer 1, il s’agit de « ++ » et « –« .
$valeur = 0;
// Ces lignes font exactement la même chose
$valeur = $valeur + 1;
$valeur += 1;
$valeur++;
// Et dans l'autre sens
$valeur = $valeur - 1;
$valeur -= 1;
$valeur--;
On s’en sert très souvent lorsqu’il est question de compter des éléments dans un programme.
Contrairement aux variables qui contiennent des chaines de caractères ou des nombres qui peuvent contenir une infinité de valeurs différentes, les variables booléennes ne peuvent contenir que 2 valeurs distinctes, vrai ou faux. Et c’est tout !
On utilise pour cela les mots clés « true » ou « false » :
$variableVraie = true;
$variableFausse = false;
// On va toujours les écrire en minuscule
Les variables booléennes, ou booléens, sont utilisés principalement quand on souhaite stocker un état ou vérifier si certaines conditions sont respectées dans le flux d’un programme (on le verra en détails au prochain chapitre sur les conditions).
Les booléens peuvent être manipulés grâce à 3 types d’opération :
Cela permet de les comparer et/ou de les combiner pour obtenir au final un seul booléen.
Il y a là une logique à comprendre et à assimiler :
Variable 1 | Opérateur | Variable 2 | Résultat |
Vrai | ET | Vrai | Vrai |
Vrai | ET | Faux | Faux |
Faux | ET | Faux | Faux |
Vrai | OU | Vrai | Vrai |
Vrai | OU | Faux | Vrai |
Faux | OU | Faux | Faux |
L’opération « NON » a pour seul but d’inverser la valeur :
Et voici ce que ça donne en PHP :
$variableVraie = true;
$variableFausse = false;
// Le ET s'écrit &&
$resultat = $variableVraie && $variableVraie; // Vaut "true"
$resultat = $variableVraie && $variableFaux; // Vaut "false"
$resultat = $variableFaux && $variableVraie; // Vaut "false"
$resultat = $variableFaux && $variableFaux; // Vaut "false"
// Le OU s'écrit ||
$resultat = $variableVraie || $variableVraie; // Vaut "true"
$resultat = $variableVraie || $variableFaux; // Vaut "true"
$resultat = $variableFaux || $variableVraie; // Vaut "true"
$resultat = $variableFaux || $variableFaux; // Vaut "false"
// Le NON s'écrit !
$resultat = ! $variableVraie; // Vaut "false"
$resultat = ! $variableFausse; // Vaut "true"
Comme pour les opérations mathématiques, on peut combiner autant de booléens qu’on veut et utiliser des parenthèses pour prioriser les opérations. Sinon le « ET » est prioritaire sur le « OU ».
Les variables, comme leur nom l’indique, vont pouvoir changer de valeur au fil de l’exécution d’un programme. Mais les constantes… non ! On va définir une valeur lors de leur déclaration et celle-ci ne pourra plus être modifiée au cours du programme.
Les constantes ont tout leur intérêt pour représenter des valeurs liées au contexte global d’un programme (ou d’un projet).
Dans le cas d’un programme ecommerce par exemple, une constante peut être utilisée pour stocker le taux de TVA qui est défini et ne change donc jamais.
En PHP, on va utiliser une structure plus complexe que le égal pour les constantes. On va utiliser la fonction define :
define('TAUX_TVA', 20);
Par convention, la constante est écrite en majuscule. En terme de valeurs, une constante peut très bien contenir une chaine de caractères, un nombre ou un booléen.
Et pour utiliser une constante, plus besoin du $ :
// Calcul d'un prix TTC
$prixTTC = $prixHT + ($prixHT * TAUX_TVA / 100);
// Comme ça on a l'illustration des différents concepts vus précédemment
Tu viens de découvrir un concept clé de la programmation, les variables, félicitations !
Voici 2 challenges pour mettre en pratique tout de suite :
Une fois que c’est bon tu peux poursuivre vers la présentation des structures conditionnelles en PHP.
N’hésite pas aussi à découvrir cet article sur les bonnes pratiques en PHP qui te donnera des éléments complémentaires sur les notions de nommage et conventions d’écriture :
Other content to discover