Vous êtes sur la page 1sur 14

PHP Dveloppement Web dynamique

I- Concepts de base des sites web 1- Principe dun site web statique

Client
Navigateur HTTP

Protocole HTTP
Demande Une Page html

Serveur Web
Localise la page dans le serveur et lenvoi directement au client

Page HTML

Lorsquun client demande une page HTML au serveur, en cliquant sur un lien hypertexte ou en saisissant lURL de cette page, le serveur web la cherche dans son disque dur, et lenvoi telle quelle au client. Dans ce cas, le serveur neffectue aucun traitement, ce qui fait que le client reoit le mme code de la page qui est hberge dans le serveur. 2- cas dun site web dynamique.

SERVEUR WEB
Demande Page.php

Page.php
Excute <? .. ?>

Client
Rsultat HTML

Apache
Encod age HTTP Rsultat HTML

PHP .EXE

SGBD MySQL

Dans le cas dun site web dynamique avec PHP, le client demande une page PHP au serveur web (Apache). Ce dernier cherche la page dans son disque dur, si elle la trouve, Il charge le module PHP et demande celui-ci dexcuter lensemble des instructions qui se trouve dans cette page. Tout script compris entre les balises < ? et ?> est considr comme tant script php et sera excut dans le serveur. Dans le cas contraire, il sera considr comme tant script Client (HTML, javascript, CSS..) et sera envoy au navigateur. Le serveur envoi
1/19

en fin de compte une page HTML comme rponse la requte. Gnralement lexcution du script php entrane la connexion une base de donnes pour consulter et mettre jour des donnes dans celle-ci. Il est important de noter que les scripts php sont excut cot serveur et que le rsultat envoy au navigateur web est form par du code HTML, javascript, css ou XML et sera interprt par le client (Browser) 3- Caractristiques dun script PHP.
Gnralement les scripts php sont stocks dans des fichiers texte ayant pour extension .php. Toute fois cette extension peut tre change en modifiant la configuration du serveur web Apache. Par fois les hbergeurs PHP prfrent spcifier la version du php dans lextension. Ainsi, on trouve des fichiers extension .php3, ?php4 ou .php5. Les scripts php sont stocks dans des fichiers texte qui peuvent contenir du code HTML et du code PHP. Tout script qui se trouve entre les balises < ? et ?> est considr comme script PHP. Il sera alors excut par le serveur. Et tout code en dehors de ces balise est considr comme tant un script statique (HTML) et sera envoy au client.

4- Requte http.
Le navigateur Web et un serveur Web communique en utilisant le protocole HTTP. Chaque requte client est associe un script dans le serveur. Lappel une page web par le client peut tre effectu par les manires suivantes : Ecrire directement ladresse de la page dans la zone URL du navigateur. En cliquant sur un lien hypertexte de la page courante. En cliquant sur le bouton submit dun formulaire de la page courante. Provoque par un timer dfini dans la page courante. La requte http contient des informations envoyes par le client. Ces informations peuvent tre: 1. Des donnes envoyes par la mthode GET : un formulaire peut utiliser la mthode GET. Dans ce cas toutes les donnes du formulaire sont envoyes avec lURL de la requte (http://localhost/affiche.php?nom=a&prenom=b&email=c......). La mthode GET est galement employe par le navigateur lorsque la requte est associe un lien hypertexte. Cette mthode prsente deux limites. La premire cest que avec GET, on ne peut pas envoyer plus de 1000 caractres (longueur maximale de lURL ). Le deuxime inconvnient est que toutes les donnes envoyes sont visible lutilisateur dans lurl du navigateur, ce qui prsente un problme au niveau de scurit. 2. Des donnes envoyes par la mthode POST : la mthode POST est gnralement utilises par les formulaires. Lavantage de cette mthode par rapport GET, cest quon peut envoyer autant de caractres que lon souhaite. En plus les donnes sont encapsules dans le corps de la requte http. Ce qui fait que les donnes envoyes ne sont pas visibles au niveau de lURL du navigateur. 3. Dans la requte HTTP, le client envoie toujours un ensemble dinformations sur sa machine (adresse IP, langue, type de navigateur.). ces informations, standardises par le protocole http, permettent au serveur de connatre mieux le client qui a envoy la requte. 4. Le client envoie galement au serveur des donnes enregistres pralablement, par le serveur, dans le poste du client sous forme de COOKIES. Ces cookies servent aux serveurs web de stocker des informations utiles, relatives chaque client, dans le poste de celui-ci. Ces informations seront lues par le serveur lorsque le client se reconnecte au mme site. Le serveur peut galement stocker des informations relatives chaque client durant toute la dure de sa connexion au site, cette fois ci dans la

2/19

RAM du serveur, en utilisant ce quon appel des variables sessions. Nous reviendrons ce concept trs important plus tard.

4- Rcuprer les donnes de la requte client avec PHP.


PHP dispose des collections suivantes pour rcuprer les donnes de la requte

$_Form
nom .

$_GET
nom .

$_SERVER
HTTP_ACCEPT_LANGUAGE

$_COOKIE
fr

prenom . Email .

prenom . Email .

Donnes envoyes par ou la mthode Post

Donnes envoyes par la mthode Get

Ensemble d informations sur le client

cookies clients

Paquet HTTP envoy par le client au serveur web

La collection $_POST permet de stocker les donnes envoyes par la mthode post. Si on suppose, par exemple, quun client a envoy un formulaire qui contient les champs nom, prenom et email, en utilisant la mthode POST, nous pouvons rcuprer, cot serveur avec un script php en crivant : <? $N=$_POST['nom']; $P=$_POST['prenom']; $E=$_POST['email']; ?> La collection $_GET permet de stocker les donnes envoyes par la mthode GET. Si on suppose, par exemple, quun client a envoy une requte GET de type http://localhost/affiche.php?nom=azerty, nous pouvons crire linstruction php suivante pour rcuprer la valeur du paramtre nom de lURL. <? $N=$_GET['nom']; ?> La collection $_SERVER peut tre utilise pour rcuprer la valeur des enttes http envoyes dans la requte du client. Ces informations permettent de dcrire les caractristiques de lenvironnement du client et du serveur. Exemples :
3/19

$langue=$_SERVER['HTTP_ACCEPT_LANGUAGE']; : pour stocker dans la variable $lanhue, le code de la langue du navigateur client. o $ip= $_SERVER['REMOTE_ADDR'] ; : pour stocker dans la variable ip, ladresse IP du client. La collection $_COOKIE permet de lire et de crer les cookies. Pour lire la valeur de la cl nom dun cookie nomm utilisateur , on peut crire : o $n=$_COOKIE['utilisateur']['nom']; o

4- Envoyer une rponse http au client avec PHP.


La rponse http envoye par le serveur client se compose de deux parties : La premire partie est forme par les enttes http. Ces enttes permettent de fournir au client des informations diverses. Ces informations peuvent, par exemple, donner des indications sur le serveur, sur le type du document envoy par le serveur, faire une redirection, crer des cookies, gestion du cache client etc PHP dispose de plusieurs manires pour dfinir les enttes de la rponse http. Linstruction la plus gnrale est header(). Cette fonction reoit en argument une chane de caractres qui indique les noms et les valeurs des enttes http. Par exemple, pour envoyer une rponse http qui indique au client de faire une redirection vers une autre page nomme affiche.php, on peut crire : header("location:affiche.php"); Location reprsente le nom de lentte http et affiche.php indique la valeur de cette ente. En recevant, dans lentte de la rponse http cette information, le client peut comprendre quil doit envoyer automatiquement une autre requte vers affiche.php. La deuxime partie de la rponse http est forme par le contenue de la page web envoye par le serveur. Cest dans cette partie quon trouverait tout le code HTML de la page qui sera affiche par le navigateur. Pour stocker des informations dans le corps de la rponse, on utilise la fonction echo (). Par exemple, pour envoyer le texte Bonjour affich en gras au navigateur, on crit : echo "<b>Bonjour</b>" ;

II- Bases du langage PHP. Gnralement, la syntaxe du langage php ressemble celle du langage C. 1- Commentaires
Comme dans le langage C, une ligne de commentaire est prcde par le double caractre slash //. Et pour mettre en commentaire un ensemble de ligne, on les dlimite par /* et */ Exemples : // Une ligne de commentaire /* Plusieurs lignes de commantaires */

2- Variables :
Une variable est un objet repr par son nom, pouvant contenir des donnes, qui pourront tre modifies lors de l'excution du programme. Les variables en langage PHP peuvent tre de trois types:

scalaires

4/19

tableaux tableaux associatifs Quelque soit le type de variable, son nom doit obligatoirement tre prcd du caractre dollar ($). Contrairement de nombreux langages de programmation, comme le langage C, les variables en PHP n'ont pas besoin d'tre dclares, c'est--dire que l'on peut commencer les utiliser sans en avoir averti l'interprteur prcdemment, ainsi si la variable existait prcdemment, son contenu est utilis, sinon l'interprteur lui affectera la valeur en lui assignant 0 par dfaut. De cette faon si vous ajoutez 3 une nouvelle variable (non dfinie plus haut dans le code), sa valeur sera 3 Nommage des variables Avec PHP, les noms de variables doivent rpondre certains critres:

un nom de variable doit commencer par une lettre (majuscule ou minuscule) ou un "_" (pas par un chiffre) un nom de variable peut comporter des lettres, des chiffres et le caractre _ (les espaces ne sont pas autoriss!)

Nom de variable correct $Variable $Nom_De_Variable $nom_de_variable $nom_de_variable_123 $nom_de_variable

Nom de variable incorrect $Nom de Variable $123Nom_De_Variable $toto@mailcity.com $Nom-de-variable nom_de_variable

Raison comporte des espaces commence par un chiffre caractre spcial @ signe - interdit ne commence pas par $

Les noms de variables sont sensibles la casse (le langage PHP fait la diffrence entre un nom en majuscule et un nom en minuscules), il faut donc veiller utiliser des noms comportant la mme casse! Toutefois, les noms de fonctions font exception cette rgle... Variables scalaires Le langage PHP propose trois types de variables scalaires:

entiers: nombres naturels sans dcimale (sans virgule) rels: nombres dcimaux (on parle gnralement de type double, car il s'agit de nombre dcimaux double prcision) chaines de caractres: ensembles de caractres

Il n'est pas ncessaire en PHP de typer les variables, c'est--dire de dfinir leur type, il suffit de leur assigner une valeur pour en dfinir le type: entiers: nombre sans virgule rels: nombres avec une virgule (en ralit un point) chaines de caractres: ensembles de caractres entre guillemets simples ou doubles

Instruction $Variable = 0; $Variable = 12;

Type de la variable type entier type entier

5/19

$Variable = 0.0; $Variable = 12.0; $Variable = "0.0";

type rel type rel type chane

$Variable = "Bonjour tout le monde"; type chane Il existe des caractres reprs par un code ASCII spcial permettant d'effectuer des oprations particulires. Ces caractres peuvent tre reprsents plus simplement en langage PHP grce au caractre '\' suivi d'une lettre, qui prcise qu'il s'agit d'un caractre de contrle: Caractre \" \\ \r \n \t guillemet barre oblique inverse (antislash) retour chariot retour la ligne tabulation Description

En effet, certains de ces caractres ne pourraient pas tre reprsents autrement (un retour la ligne ne peut pas tre reprsent l'cran). D'autre part, les caractres \ et " ne peuvent pas faire partie en tant que tel d'une chane de caractre, pour des raisons vidente d'ambigit... Variables tableaux Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donne la fois. Or, pour de nombreuses donnes, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes grer. Heureusement, PHP propose des structures de donnes permettant de stocker l'ensemble de ces donnes dans une "variable commune". Ainsi, pour accder ces valeurs il suffit de parcourir la variable de type complexe compose de variables de type simple. Les tableaux stockent des donnes sous forme de liste. Les donnes contenues dans la liste sont accessibles grce un index (un numro reprsentant l'lment de la liste). Contrairement des langages tels que le langage C, il est possible de stocker des lments de types diffrents dans un mme tableau. Ainsi, pour dsigner un lment de tableau, il suffit de faire suivre au nom du tableau l'indice de l'lment entre crochets: $Tableau[0] = 12; $Tableau[1] = "CCM"; Avec PHP, il n'est pas ncessaire de prciser la valeur de l'index lorsque l'on veut remplir un tableau, car il assigne la valeur 0 au premier lment (si le tableau est vide) et incrmente les indices suivants. De cette faon, il est facile de remplir un tableau avec des valeurs. Le code prcdent est quivalent : $Tableau[] = 12; $Tableau[] = "CCM";

Les indices de tableau commencent zro tous les types de variables peuvent tre contenus dans un tableau

6/19

Lorsqu'un tableau contient d'autres tableaux, on parle de tableaux multidimensionnels. Il est possible de crer directement des tableaux multidimensionnels en utilisant plusieurs paires de crochets pour les index (autant de paires de crochets que la dimension voulue). Par exemple, un tableau deux dimensions pourra tre dclar comme suit: $Tableau[0][0] = 12; $Tableau[0][1] = "CCM"; $Tableau[1][0] = 1245.652; $Tableau[1][1] = "Au revoir"; Variables tableaux associatifs PHP permet l'utilisation de chanes de caractres au lieu de simples entiers pour dfinir les indices d'un tableau, on parle alors de tableaux associatifs. Cette faon de nommer les indices peut parfois tre plus agrable utiliser: $Toto["Age"] = 12; $Toto["Adresse"] = "22 rue des bois fleuris"; Porte (visibilit) des variables Selon l'endroit o on dclare une variable, celle-ci pourra tre accessible (visible) de partout dans le code ou bien que dans une portion confine de celui-ci ( l'intrieur d'une fonction par exemple), on parle de porte (ou visibilit) d'une variable. Lorsqu'une variable est dclare dans le code mme, c'est--dire l'extrieur de toute fonction ou de tout bloc d'instructions, elle est accessible de partout dans le code (n'importe quelle fonction du programme peut faire appel cette variable). On parle alors de variable globale Lorsque l'on dclare une variable l'intrieur d'un bloc d'instructions (entre des accolades), sa porte se confine l'intrieur du bloc dans lequel elle est dclare.

Une variable dclare au dbut du code, c'est--dire avant tout bloc de donne, sera globale, on pourra alors les utiliser partir de n'importe quel bloc d'instructions Une variable dclare l'intrieur d'un bloc d'instructions (dans une fonction ou une boucle par exemple) aura une porte limite ce seul bloc d'instructions, c'est--dire qu'elle est inutilisable ailleurs, on parle alors de variable locale

D'une manire gnrale il est prfrable de donner des noms diffrents aux variables locales et globales pour des raisons de lisibilit et de comprhension du code. Dfinition de constantes Une constante est une variable dont la valeur est inchangeable lors de l'excution d'un programme. Avec PHP, les constantes sont dfinies grce la fonction define(). la syntaxe de la fonction define() est la suivante: define("Nom_de_la_variable", Valeur);

3- les oprateurs : Oprateurs arithmtiques


Les oprateurs de calcul permettent de modifier mathmatiquement la valeur d'une variable Oprateur Dnomination Effet Exemple Rsultat (pour x=7)

7/19

+ * / = %

oprateur d'addition oprateur de soustraction oprateur de multiplication plus: oprateur de division oprateur d'affectation oprateur modulo

Ajoute deux valeurs Soustrait deux valeurs Multiplie deux valeurs Divise deux valeurs Affecte une valeur une variable Donne le reste de la division entire entre 2 nombres

$x+3 $x-3 $x*3 $x/3 $x=3 $x%3

10 4 21 2.3333333 Met la valeur 3 dans la variable $x 1

Les oprateurs d'assignation


Ces oprateurs permettent de simplifier des oprations telles que ajouter une valeur dans une variable et stocker le rsultat dans la variable. Une telle opration s'crirait habituellement de la faon suivante par exemple: $x=$x+2 Avec les oprateurs d'assignation il est possible d'crire cette opration sous la forme suivante: $x+=2 Ainsi, si la valeur de x tait 7 avant opration, elle sera de 9 aprs... Les autres oprateurs du mme type sont les suivants: Oprateur += -= *= /= %= |= ^= &= .= Effet addition deux valeurs et stocke le rsultat dans la variable ( gauche) soustrait deux valeurs et stocke le rsultat dans la variable multiplie deux valeurs et stocke le rsultat dans la variable divise deux valeurs et stocke le rsultat dans la variable donne le reste de la division deux valeurs et stocke le rsultat dans la variable Effectue un OU logique entre deux valeurs et stocke le rsultat dans la variable Effectue un OU exclusif entre deux valeurs et stocke le rsultat dans la variable Effectue un Et logique entre deux valeurs et stocke le rsultat dans la variable Concatne deux chanes et stocke le rsultat dans la variable

Les oprateurs d'incrmentation


Ce type d'oprateur permet de facilement augmenter ou diminuer d'une unit une variable. Ces oprateurs sont trs utiles pour des structures telles que des boucles, qui ont besoin d'un compteur (variable qui augmente de un en un). Un oprateur de type $x++ permet de remplacer des notations lourdes telles que $x=$x+1 ou bien $x+=1
8/19

Oprateur

Dnomination

Effet Augmente d'une unit la variable

Syntaxe

Rsultat (avec x valant 7) 8 6

++ --

Incrmentation

$x++ $x--

Dcrmentation Diminue d'une unit la variable

Les oprateurs de comparaison :

Oprateur == A ne pas confondre avec le signe d'affectation (=)!! <

Dnomination

Effet

Exemple

Rsultat Retourne 1 si $x est gal 3, sinon 0 Retourne 1 si $x est infrieur 3, sinon 0 Retourne 1 si $x est infrieur ou gale 3, sinon 0 Retourne 1 si $x est suprieur 3, sinon 0 Retourne 1 si $x est suprieur ou gal 3, sinon 0 Retourne 1 si $x est diffrent de 3, sinon 0

oprateur d'galit

Compare deux valeurs et vrifie leur galit Vrifie qu'une variable est strictement infrieure une valeur Vrifie qu'une variable est infrieure ou gale une valeur

$x==3

oprateur d'infriorit stricte oprateur d'infriorit oprateur de supriorit stricte oprateur de supriorit oprateur de diffrence

$x<3

<=

$x<=3

>

Vrifie qu'une variable est strictement $x>3 suprieure une valeur Vrifie qu'une variable est suprieure ou gale une valeur Vrifie qu'une variable est diffrente d'une valeur $x>=3

>=

!=

$x!=3

Les oprateurs logiques (boolens) :

Ce type d'oprateur permet de vrifier si plusieurs conditions sont vraies: Oprateur Dnomination || ou OR OU logique Effet Vrifie qu'une des conditions est ralise Syntaxe ((condition1)||(condition2))

9/19

&& ou AND XOR

ET logique OU exclusif

Vrifie que toutes les conditions sont ralises Vrifie qu'une et une seule des conditions est ralise Inverse l'tat d'une variable boolenne (retourne la valeur 1 si la variable vaut 0, 0 si elle vaut 1)

((condition1)&&(condition2)) ((condition1)XOR(condition2))

NON logique

(!condition)

4- Structures de contrle
La notion de bloc Une expression suivie d'un point-virgule est appele instruction. Par exemple a++; est une instruction. Lorsque l'on veut regrouper plusieurs instructions, on peut crer ce que l'on appelle un bloc, c'est-dire un ensemble d'instructions (suivies respectivement par des point-virgules) et comprises entre les accolades { et }. Les instructions if, while et for peuvent par exemple tre suivies d'un bloc d'instructions excuter... L'instruction if L'instruction if est la structure de test la plus basique, on la retrouve dans tous les langages (avec une syntaxe diffrente...). Elle permet d'excuter une srie d'instruction si jamais une condition est ralise. La syntaxe de cette expression est la suivante: if (condition ralise) { liste d'instructions } Remarques:

la condition doit tre entre des parenthses il est possible de dfinir plusieurs conditions remplir avec les oprateurs ET et OU (&& et ||) par exemple l'instruction suivante teste si les deux conditions sont vraies : if ((condition1)&&(condition2)) L'instruction ci-dessous excutera les instructions si l'une ou l'autre des deux conditions est vraie : if ((condition1)||(condition2)) s'il n'y a qu'une instruction, les accolades ne sont pas ncessaires...

L'instruction if ... else L'instruction if dans sa forme basique ne permet de tester qu'une condition, or la plupart du temps on aimerait pouvoir choisir les instructions excuter en cas de non ralisation de la condition... L'expression if ... else permet d'excuter une autre srie d'instruction en cas de non-ralisation de la condition. La syntaxe de cette expression est la suivante: if (condition ralise) { liste d'instructions
10/19

} else { autre srie d'instructions } L'instruction if ... elseif ... else L'instruction if ... else ne permet de tester qu'une condition, or il est parfois ncessaire de tester plusieurs conditions de faon exclusive, c'est--dire que sur toutes les conditions une seule sera ralise ... L'expression if ... elseif ... else permet d'enchaner une srie d'instructions et vite d'avoir imbriquer des instructions if. La syntaxe de cette expression est la suivante: if (condition ralise) { liste d'instructions } elseif (autre condition ralise) { autre srie d'instructions } ... else (dernire condition ralise) { srie d'instructions } Une faon plus courte de faire un test (oprateur ternaire) Il est possible de faire un test avec une structure beaucoup moins lourde grce la structure suivante, appele oprateur ternaire: (condition) ? instruction si vrai : instruction si faux Remarques:

la condition doit tre entre des parenthses Lorsque la condition est vraie, l'instruction de gauche est excute Lorsque la condition est fausse, l'instruction de droite est excute

L'instruction switch L'instruction switch permet de faire plusieurs tests de valeurs sur le contenu d'une mme variable. Ce branchement conditionnel simplifie beaucoup le test de plusieurs valeurs d'une variable, car cette opration aurait t complique (mais possible) avec des if imbriqus. Sa syntaxe est la suivante: switch (Variable) { case Valeur1:

11/19

Liste d'instructions break; case Valeur2: Liste d'instructions break; case Valeurs...: Liste d'instructions break; default: Liste d'instructions break; } Les parenthses qui suivent le mot cl switch indiquent une expression dont la valeur est teste successivement par chacun des case. Lorsque l'expression teste est gale une des valeurs suivant un case, la liste d'instructions qui suit celui-ci est excute. Le mot cl break indique la sortie de la structure conditionnelle. Le mot cl default prcde la liste d'instructions qui sera excute si l'expression n'est jamais gale une des valeurs. N'oubliez pas d'insrer des instructions break entre chaque test, ce genre d'oubli est difficile dtecter car aucune erreur n'est signale... Les boucles Les boucles sont des structures qui permettent d'excuter plusieurs fois la mme srie d'instructions jusqu' ce qu'une condition ne soit plus ralise. On appelle parfois ces structures instructions rptitives ou bien itrations. La faon la plus commune de faire une boucle, est de crer un compteur (une variable qui s'incrmente, c'est--dire qui augmente de 1 chaque tour de boucle) et de faire arrter la boucle lorsque le compteur dpasse une certaine valeur. La boucle for L'instruction for permet d'excuter plusieurs fois la mme srie d'instructions: c'est une boucle! Dans sa syntaxe, il suffit de prciser le nom de la variable qui sert de compteur (et ventuellement sa valeur de dpart, la condition sur la variable pour laquelle la boucle s'arrte (basiquement une condition qui teste si la valeur du compteur dpasse une limite) et enfin une instruction qui incrmente (ou dcrmente) le compteur. La syntaxe de cette expression est la suivante: for (compteur; condition; modification du compteur) { liste d'instructions } Par exemple: for ($i=1; $i<6; $i++) { echo "$i<br>";

12/19

Cette boucle affiche 5 fois la valeur de $i, c'est--dire 1,2,3,4,5 . Elle commence $i=1, vrifie que $i est bien infrieur 6, etc... jusqu' atteindre la valeur $i=6, pour laquelle la condition ne sera plus ralise, la boucle s'interrompra et le programme continuera son cours. L'instruction while L'instruction while reprsente un autre moyen d'excuter plusieurs fois la mme srie d'instructions. La syntaxe de cette expression est la suivante: while (condition ralise) { liste d'instructions } Cette instruction excute la liste d'instructions tant que (while est un mot anglais qui signifie tant que) la condition est ralise. La condition de sortie pouvant tre n'importe quelle structure conditionnelle, les risques de boucle infinie (boucle dont la condition est toujours vraie) sont grands, c'est--dire qu'elle risque de provoquer un plantage du navigateur! Saut inconditionnel Il peut tre ncessaire de faire sauter la boucle une ou plusieurs valeurs sans pour autant mettre fin celle-ci. La syntaxe de cette expression est "continue;" (cette instruction se place dans une boucle!), on l'associe gnralement une structure conditionnelle, sinon les lignes situes entre cette instruction et la fin de la boucle seraient obsoltes. Exemple: Imaginons que l'on veuille imprimer pour $x allant de 1 10 la valeur de 1/($x-7) ... il est vident que pour $x=7 il y aura une erreur. Heureusement, grce l'instruction continue il est possible de traiter cette valeur part puis de continuer la boucle! $x=1; while ($x<=10) { if ($x == 7) { echo "Division par zro!"; continue; } $a = 1/($x-7); echo "$a<br>"; $x++;
13/19

} Il y avait une erreur dans ce programme... peut-tre ne l'avez-vous pas vue: Lorsque $x est gal 7, le compteur ne s'incrmente plus, il reste constamment la valeur 7, il aurait fallu crire: $x=1; while ($x<=10) { if ($x == 7) { echo "division par 0"; $x++; continue; } $a = 1/($x-7); echo "$a<br>"; $x++; } Arrt inconditionnel A l'inverse, il peut tre voulu d'arrter prmaturment la boucle, pour une autre condition que celle prcis dans l'en-tte de la boucle. L'instruction break permet d'arrter une boucle (for ou bien while). Il s'agit, tout comme continue, de l'associer une structure conditionnelle, sans laquelle la boucle ne ferait jamais plus d'un tour! Dans l'exemple de tout l'heure, par exemple si l'on ne savait pas quel moment le dnominateur ($x7) s'annule (bon...OK...pour des quations plus compliques par exemple) il serait possible de faire arrter la boucle en cas d'annulation du dnominateur, pour viter une division par zro! for ($x=1; $x<=10; $x++) { $a = $x-7; if ($a == 0) { echo "division par 0"; break; } echo "1/$a<br>"; }

14/19