Bien, nous allons maintenant nous attaquer aux conditions.
N'allez pas chercher là un nom bizarre qui ne veut pas dire ce que l'on pense, il s'agit bel et bien de conditions "si", "sinon, si" et "sinon". :)
Là, bien entendu, nous allons pas écrire du php en Français, ces thermes se traduisent donc ainsi en anglais :
if | = | Si |
elseif | = | Sinon, si / autrement, si |
else | = | Sinon / autrement |
Alors, que faire avec ça ?
Les conditions vont nous permettre de créer diverses actions en fonction de plusieurs choses :
- On peut afficher une erreur au visiteur si celui-ci n'a pas rempli tous les champs d'un formulaire,
- On peut afficher un contenu différent selon l'heure de la journée, ou la saison de l'année,
- On peut aussi trier une liste selon le choix du visiteur, ...
Nous n'avons pas encore assez avancé dans le cours pour bien vous parler de ces actions possibles, nous allons donc créer des exemples simples pour débuter, et éviter de trop y aller d'un coup, mais sachez que les possibilités qu'offrent les conditions sont quasi infinies, c'est tout simplement quelque chose de génial! :)
Nous allons continuer d'utiliser les variables, que vous avez apprises dans le chapitre précédent.
Nous allons définir une variable $couleur dont la valeur sera "bleue".
Nous créerons ensuite des conditions pour dire :
- Si la couleur est rouge, on affichera "J'aime bien le rouge",
- Si la couleur est vert, on affichera "Oui, le vert, c'est pas mal!",
- Si la couleur est bleue, on affichera "Je préfère le rouge au bleu",
- Si la couleur n'est aucune des deux, on affichera "A ton avis, quelle est ma couleur préférée?".
Une fois notre code en place, on en vérifiera le bon fonctionnement, tout simplement en changeant la valeur de la variable $couleur. :)
C'est compliqué? Non, quand même!? :D
Bon, un peu d'explications s'imposent, malgré que ce code soit déjà commenté. :)
Nous commençons donc par définir une variable $couleur, dont la valeur est "bleu".
Ensuite, on attaque les conditions. Dans cet exemple, nous voulons afficher une phrase différente selon le contenu de la variable $couleur.
On écrit donc if ($couleur == 'rouge'), suivi de deux accolades, qui contiendront le résultat à afficher, si la variable $couleur est bel et bien le rouge.
Certains doivent déjà se questionner, à propos des signes ( == ).
Pour déclarer nos variables, nous n'avons eu qu'à écrire un seul signe ( = ), alors pourquoi dans les conditions, on doit en écrire deux? :-O
Une des utilités des conditions, est de pouvoir comparer des données.
Dans l'exemple que nous avons utilisé précédemment, nous avons comparé la valeur d'une variable ($couleur), avec des résultats pré-définis (le rouge, le vert et le bleu).
Mais sachez que l'on peut faire bien plus!
Nous allons, en plus du signe ( == ), en apprendre d'autres, tous aussi utiles les uns que les autres! :)
== | | | Égal à |
!= | | | Différent de |
> | | | Suppérieur à |
< | | | Inférieur à |
>= | | | Supérieur ou égal à |
<= | | | Inférieur ou égal à |
Nous allons, pour illustrer l'utilisation de ces signes, créer un autre script d'exemple.
Dans ce cas, on ne pourra bien entendu pas comparer des couleurs "bleu" ou "rouge", mais l'utilisation de chiffres y sera plus adaptée.
Essayez de changer la variable $compte_en_banque, par exemple :
$compte_en_banque = 12098630;
$compte_en_banque = 1278;
$compte_en_banque = 130;
$compte_en_banque = -146;
Nous allons maintenant, en plus de parler de la condition != (Différent de), aborder les mots clefs OR et AND, que nous verrons juste après.
Dans l'exemple qui va suivre, nous voulons afficher une phrase différente en fonction du pays choisi dans la variable $pays.
Papayouhh!!! ! :-O
Là, ça en fait du bazard, non? :D
Bon, un peu d'explications...
Tout d'abord, on crée une condition pour savoir si le pays est la France ou non.
Si ce n'est pas la France, on écrit "Tu n'habite pas en France", et on enchaîne sur une deuxième condition, à l'intérieur de cette première condition donc!
Cette seconde condition, elle, va vérifier si le pays donné dans la variable $pays est un pays frontalier à la France. Dans un tel cas, il affichera à la suite de la phrase "Tu n'habite pas en France" > ", mais dans un pays frontalier qui est : $pays".
Dans notre exemple donc, PHP retournera :
Récapitulons donc, il y en a pour tous les goûts! :)
- Si le pays est "France", PHP retournera "Tu habite en France".
- Si le pays n'est pas la France, mais un pays frontalier à la France, PHP retournera "Tu n'habite pas en France, mais dans un pays frontalier qui est : Le nom du pays".
- Si le pays est tout autre, par exemple l'Inde ou la Hongrie, PHP retournera juste "Tu n'habite pas en France".
Intéressant tout ça, non? :)
Nous verrons dans un chapitre prochain comment créer un formulaire pour que le visiteur puisse choisir lui même un pays parmi une liste dans un menu déroulant par exemple! ;)
Mais patience, chaque choses en son temps! :D
Pour cet exercice, je vous suggère deux choses, pour que vous pratiquiez, et que vous comprenez un peu mieux tout ça.
Déjà, amusez vous à changer la valeur de la variable $pays, pour en voir ce qu'il en résulte.
Ensuite, essayez d'améliorer ce script, pour, par exemple, afficher "Tu n'habite pas en France, mais dans un pays frontalier qui est : Belgique. Ce pays fait partie de l'Union Européenne.".
Pour ne pas vous embêter à chercher la liste des pays de l'Union Européenne sur Google, en voici la liste (hé oui, vous n'avez pas d'excuse pour y échapper :P) :
Allemagne - Autriche - Belgique - Chypre - Danemark - Espagne - Estonie - Finlande - France - Grèce - Hongrie - Irlande - Italie - Lettonie - Lituanie - Luxembourg - Malte - Pays-Bas - Pologne - Portugal - République Tchèque - Royaume-uni - Slovaquie - Slovenie - Suède
Hé ouais, ça en fait des "OR $pays ==" hein? Mais c'est pourtant important de vérifier que vous ayez bien compris ce que nous avons appris jusque là, c'est pourquoi je vous recommande vivement de faire cet exercice! :)
Parlons maintenant brièvement du mot clef AND, qui s'applique comme le OR dans nos conditions.
Avec AND, nous allons pouvoir vérifier par exemple le contenu de deux variables, dans une seule condition.
Imaginons un script pour protéger l'accès à une page par login/mot de passe.
Hormis le fait que nous n'ayons pas encore appris comment utiliser le contenu d'un formulaire dans nos scripts (patience, ça arrive!), vous allez voir que le principe est bien simple, même si en réalité, tous les sites web ont un script un peu plus complexe que cela, pour sécuriser un peu leur code... nous n'en sommes pas là, voyons donc ce petit script ensemble :
Si vous aviez bien compris l'exemple du mot OR, vous ne devriez pas avoir de mal avec le mot AND! ;)
Pour vous entraîner, essayez par exemple :
- D'ajouter un deuxième mot de passe pour le compte Darou (hé oui, il hésite toujours entre Kramounia et Bogchtagravédé notre p'tit Darou)
- D'ajouter un elseif pour ajouter un deuxième accès pour un membre (autre login et password, donc).
C'est pas bien dur, faites-le, et on se retrouve juste après pour la suite! :)
Abordons maintenant la possibilité de tester la contenance de nos variables.
Nous souhaiterions par exemple, voir si une variable $prenom a bien été remplie ou non par le visiteur. Comme je vous le disais précédemment, nous verrons comment faire cela avec un formulaire plus tard, après le chapitre sur la concaténation.
Nous testerons donc notre script comme précédemment, avec une variable toute faite.Écrivons un petit script, assez simple, qui nous servira de base :
Ce script marche. PHP en retournera :
Mais il n'est pas très juste.
Dans les faits, on peut traiter ce type de cas (une variable vide), principalement par deux méthodes :
- Avec le mot clef "NULL", qui veut se traduirait en PHP par "vide",
- Avec les booléennes, que nous verrons ensuite.
Reprenons notre script, mais en utilisant le mot clef NULL.
C'est déjà plus correct! :)
On peut également l'écrire d'une autre manière, en inversant nos conditions :
Ces trois derniers scripts que nous avons vus affichent donc tous les trois la même chose au final! :)
Cependant, les deux derniers sont un peu plus recommandables. Utilisez l'un ou l'autre selon vos besoins, tout simplement!
Après avoir testé la contenance de nos variables, nous allons voir comment faire pour détecter l'existence d'une variable.
Cette technique toute simple à mettre en oeuvre, et qui nous sera très utile pour créer des scripts un peu plus avancés, s'appelle une fonction.
Nous reviendrons d'ailleurs sur les fonctions dans un chapitre.
Plutôt que de bla-blatter, voyons ensemble un exemple d'utilisation de la fonction isset()
Pfiou! Y'a quelques lignes là!
Hé oui, mais il va falloir vous y habituer, on va commencer à écrire des choses un peu plus complexes maintenant! :)Alors, dans ce script, nous avons :
- 6 variables, définissant la civilité (Mr. Mme. Mlle.), le nom, prénom, l'adresse, le code postal et la ville d'un client du site fictif "Sitedachat.com",
- Une première condition, vérifiant l'existence de ces 6 même variables,
- Si cette condition est passée, on affichera "Bonjour Mr. Druhlulu Jimmy.", sinon, on affichera une erreur "Vous n'avez pas à être ici en fait...",
- À l'intérieur de cette condition, une deuxième condition, vérifiant l'existence d'une variable $confirmation_payement.
Cette variable n'étant effectivement pas déclarée, on "saute" la condition "if(isset($confirmation_payement))" pour arriver à son "sinon" en PHP : else
Nous rajoutons ainsi une seconde ligne "Désolé, votre commande n'a pas été confirmée."
Avant de passer au chapitre suivant, je vous demanderais tout de même de tester ce script.
Le but, sera donc de faire écrire à PHP le texte suivant :
Autant ne pas vous cacher que, si vous n'arrivez pas à faire afficher ce résultat, vous n'avez pas encore bien tout compris ce que nous avons vus jusque maintenant. Je ne saurais donc que vous conseiller de relire les parties de cours sur les variables, les conditions et la fonction isset. ;)
Bon, maintenant, nous allons voir un dernier point bien important, avant d'attaquer l'écriture de scripts un peu plus utiles! :)
Allez vous cherchez un verre, et continuons!
Par : Legibe & Vinchz, le 5 septembre 2006