Академический Документы
Профессиональный Документы
Культура Документы
Un peu de théorie
Que se passe-t-il lorsque vous entrez l'adresse d'une page dans votre navigateur
(agent utilisateur) ?
Ainsi, la visite d'un site ne se fait que par "morceau", page après page. Le serveur web
et le client ne sont en relation qu'au moment où une requête est interprétée par le
serveur web. Une fois que la page a été envoyée au client, le serveur web perd tout
contact avec celui-ci. Ce mécanisme devient plus complexe lors de l'emploi d'un
langage de programmation interprété côté serveur.
Langage côté serveur
Cette expression désigne un langage dont l'exécution à lieu sur le serveur et non sur
la machine du "client" comme le sont les scripts JavaScript, les animations Flash ou
tout simplement les rendus CSS de la page HTML : logique. Toutefois cela a de
nombreuses implications :
PHP étant un langage exécuté côté serveur, voyons comment l'exécution d'une page
contenant un script PHP se déroule. Imaginons une requête demandant au serveur
web de livrer à l'agent utilisateur une page quelconque contenant du PHP. Il peut
s'agir d'un document (X)HTML dont l'URI est entrée directement par le visiteur ou
d'une feuille de style CSS appelée par l'agent utilisateur lors de la lecture d'une page
HTML.
Quelles sont ces données renvoyées au client ? Il s'agit tout simplement de ce que la
fonction de la page implique : s'il s'agit d'un document (X)HTML, ce sera du (X)HTML,
mais si la page est un fil RSS, les données renvoyées seront des données XML. Ainsi,
une fois la page envoyée au client, il n'est plus question de PHP. C'est donc à vous de
faire en sorte que votre script PHP renvoie les données correspondant au type de
page générée et le cas échéant que ces données soient valides.
Quel a été le rôle de PHP ? Celui-ci a servi à générer les données qui ont été
renvoyées au client. Par exemple, nous pouvons établir un script PHP qui va générer
une page html en assemblant plusieurs fichiers, ou en insérant le contenu issu d'une
base de données dans une page html existante.
Ainsi, le traitement effectué par PHP ne sert que d'intermédiaire : le client demande
une page particulière (page html, feuille de style css, etc), le serveur web interprète la
demande et lance l'exécution d'un script qui va permettre la génération de la page
avant de la renvoyer au client. Ainsi, pour le client il n'est pas question de PHP : une
fois la page renvoyée elle ne contient plus de code PHP, mais uniquement des
données d'un type particulier (une page html le plus souvent).
Ce mécanisme implique également que le script s'arrête une fois la page générée et
renvoyée. Prennons l'exemple de la consultation d'un forum : il ne s'agit pas d'un
processus continu, où un script PHP s'exécute constamment. A chaque fois, le script
reprend depuis le début, génère une page et s'arrête. Entre chacune de ses
éxécutions (ou entre l'exécution de différents script des pages d'un même site), un
script PHP ne garde aucun "souvenir" du client. Chaque exécution est totalement
indépendantes des précédentes (nous verrons plus loin qu'il y a quand même moyen
de garder une "trace" des exécutions précédentes).
Un script PHP peut prendre place n'importe où à l'intérieur d'un document. Lorsque
l'interpréteur PHP lit le fichier, il envoie en sortie tout le contenu qu'il trouve avant un
script, ensuite le script est exécute (et renvoie peut être lui même des données). Une
fois le script terminé, l'interpréteur continue de parcourir le fichier de la même façon
et exécute les éventuels autres script présents dans la suite du document.
Un script doit être encadré par un balisage particulier afin d'être reconnu comme tel.
Le balisage suivant est le plus courant (et recommandé) afin de définir le début et la
fin d'un script :
<?php
?>
Tout cela est bien beau, mais à quoi peut bien servir PHP ?
Nous pouvons faire une liste des utilisations les plus courantes :
Après avoir vu un premier aperçu du langage PHP, nous allons maintenant étudier les différentes
structures de contrôles du langage. Les structures de contrôles nous permettrons de faire des tests entre
les variables et d'exécuter diverses boucles.
Instructio
Signification
n
if Si
else Sinon
elseif Sinon si
switch Selon
== Strictement égal
!= Différent
or ou || OU logique
Nous allons initialiser une variable numérique $nombre à la valeur 11 par exemple, et faire différent
tests dessus.
exemple1.php
1. <?php
2. $nombre = 11;
3. if ($nombre >= 0 && $nombre < 10) {
4. // on teste si la valeur de notre variable est comprise entre 0 et 9
5. echo $nombre.' est compris entre 0 et 9';
6. }
7. elseif ($nombre >= 10 && $nombre < 20) {
8. // on teste si la valeur de notre variable est comprise entre 10 et 19
9. echo $nombre.' est compris entre 10 et 19';
10. }
11. else {
12. // si les deux tests précédents n'ont pas aboutis, alors on tombe dans ce
cas
13. echo $nombre.' est plus grand que 19';
14. }
15. ?>
A l'affichage on aura :
(Remarquons déjà que les instructions qui doivent être exécutées lorsqu'un test est validé sont
systématiquement comprises entre des crochets { }).
Dans un premier temps, on teste si $nombre est supérieur ou égal à 0 et strictement inférieur à 10, et
dans ce cas, et seulement dans ce cas, on écrira alors sur l'écran, $nombre est compris entre 0 et 9.
Or vu que $nombre est égal à 11, on se rend compte que ce test ne sera pas satisfait.
On a alors deux solutions. Soit on écrit directement le cas Sinon (else), soit on peut faire un autres test,
ce qui correspond à un SinonSi (elseif).
Nous avons choisis de faire un second test (elseif).
La, on teste si $nombre est supérieur ou égal à 10 et strictement inférieur à 20 (ce qui est notre cas car
$nombre est égal à 11).
Le test est donc validé, et l'on exécute alors les instructions présentes entre les crochets { } du elseif.
On affichera donc à l'écran : 11 est compris entre 10 et 19
Viens ensuite le cas else qui est exécuté seulement si aucunes des conditions définies par les if et
les elseif n'est vérifiées.
switch
Prenons un exemple simple. Nous allons déclarer une variable contenant une chaîne de caractères, puis
nous allons tester cette chaîne grâce au switch.
On aura alors le code suivant :
exemple2.php
1. <?php
2. $nom = "LA GLOBULE";
3.
4. switch ($nom) {
5. case 'Jean' :
6. echo 'Votre nom est Jean.';
7. break;
8. case 'Benoît' :
9. echo 'Votre nom est Benoît.';
10. break;
11. case 'LA GLOBULE' :
12. echo 'Votre nom est LA GLOBULE.';
13. break;
14. default :
15. echo 'Je ne sais pas qui vous êtes !!!';
16. }
17. ?>
Dans notre cas, vu que $nom contient la chaîne de caractère LA GLOBULE, on verra alors s'afficher à
l'écran la phrase suivante :
En revanche, si la variable $nom avait contenu la chaîne de caractère "toto", ce même code aurait
affiché à l'écran :
En utilisant un if puis une succession de elseif, le code suivant aurait exactement eu le même affichage
sur l'écran :
exemple3.php
1. <?php
2. $nom = "LA GLOBULE";
3.
4. if ($nom == "Jean") {
5. echo 'Votre nom est Jean.';
6. }
7. elseif ($nom == "Benoît") {
8. echo 'Votre nom est Benoît.';
9. }
10. elseif ($nom == "LA GLOBULE") {
11. echo 'Votre nom est LA GLOBULE.';
12. }
13. else {
14. echo 'Je ne sais pas qui vous êtes !!!';
15. }
16. ?>
Attention !
Notez bien l'utilisation de break dans chaque cas de votre switch. Si celui-ci est omis, tous les messages
s'afficheront.
La structure de contrôle for nous permet d'écrire des boucles. En clair, cela veut dire que nous allons
exécuter une série d'instructions un nombre de fois bien déterminé.
exemple4.php
1. <?php
2. $chiffre = 5;
3.
4. // Début de la boucle
5. for ($i=0; $i < $chiffre; $i++) {
6. echo 'Notre chiffre est différent de '.$i.'<br />';
7. }
8. // Fin de la boucle
9.
10. echo 'Notre chiffre est égal à '.$i;
11. ?>
En effet, on initialise notre variable $chiffre à 5. On démarre la boucle for qui dit que l'on va exécuter les
instructions situées entre les crochets de la boucle ({ }) pour i variant de 0 à $chiffre-1 (donc jusqu'à 4),
i étant incrémenter à chaque passage de boucle ($i++).
($i varie de 0 à $hiffre-1 car on impose que $i soit strictement inférieur à $chiffre).
On exécute alors 4 fois les instructions présentes dans la boucle, et à chaque passage, $i verra sa valeur
augmentée de 1.
Aparté :
Voyons maintenant l'autre boucle, la boucle while (dite boucle tant que). Il faut déjà savoir que la
boucle while n'est pas vraiment d'une nécessité absolue (elle est absente dans certains langages de
programmation) vu qu'elle est toujours remplaçable par une boucle for.
exemple5.php
1. <?php
2. $chiffre = 5;
3. $i = 0;
4.
5. // Début de la boucle
6. while ($i < $chiffre) {
7. echo 'Notre chiffre est différent de '.$i.'<br />';
8. $i = $i + 1;
9. }
10. // Fin de la boucle
11.
12. echo 'Notre chiffre est égal à '.$i;
13. ?>
Ce qui affichera à l'écran exactement la même chose que ce qu'affiche le code que l'on a utilise pour la
boucle for.