PHP 3 : les élements de contrôle
L’exécution de programmes nécessite de faire des choix et/ou de répéter certaines séquences d’instructions.
On appelle ces techniques, des structures de contrôle. Elles sont deux types :
(i) les structures itératives, pour répéter un ensemble d’actions un nombre de fois déterminé,
(ii) les structures alternatives, qui permettent de réaliser des actions en fonction d’une condition, généralement appelée condition logique.
Dans bien des cas, il va être nécessaire de réaliser des tests, des comparaisons, sur des variables, pour définir les actions
à effectuer. Les opérateurs de comparaison sont les mêmes qu’en Javascript :
- égalité numérique : == exemple : $a == $b
- supérieur strictement : > exemple : $a > $b
- supérieur ou égal: >= exemple : $a >= $b
- inférieur strictement : < exemple : $a < $b
- inférieur ou égal : <= exemple : $a <= $b
- différent : ! = exemple : $a ! = $b
De plus, il est possible :
- d’appliquer une négation de l’expression à l’aide du caractère ! : exemple ! ($a== $b) est équivalent à $a ! = $b.
- de combiner des comparaisons en une expression logique à l’aide des opérateurs ET && et OU —— :
- l’expression ($a < $b) && ($a < $c) testera si la variable $a est bien inférieure, à la fois, à la variable $b et à la variable $c;
- l’expression ($a < $b) —— ($a < $c) testera si la variable $a est inférieure à la variable $b ou est inférieure à la variable $c;
3-1 Structures de contrôle
3-1-1 Structures conditionnelles ou altenatives
Elles sont au nombre de deux tout comme en algorithme.
- Si : deux syntaxes possible :
if(condition){instructions}
if(condition){instructions}else{instructions}
- Cas : syntaxe
switch(variable){
case valeur1:instructions
break;
case valeur2:instructions
break;
...
case valeurn:instructions
break;
default:
instructions
}
NB : la structure switch ... case ... est une structure particulièrement bien adaptée à la réalisation de
menus. En effet, en fonction d’un choix réalisé, on pourra effectuer une action associée.
L’exemple suivant présente un exemple des différentes structures alernatives
3-1-2 Structures itératives, appelées aussi répétitives ou boucle
Elles sont au nombre de 3.
- La boucle while : à utiliser lorsque l’on ne connaît pas, au préalable, le nombre d’itérations que l’on va réaliser.
syntaxe :
while(condition){instructions}
- La boucle do ... while(...); : à utiliser lorsque l’on ne connaît pas, au préalable, le nombre d’itérations que l’on va réaliser.
Contrairement à la boucle while dans le cas de la boucle do ... while(...); le bloc est au moins
exécuté une fois !
do{instructions}while(condition);
- La boucle for : à utiliser lorsque l’on connaît, au préalable, le nombre d’itérations que l’on va réaliser.
La structure de cette boucle est composée de trois éléments : l’initialisation, le test (la condition) et l’incrément (la façon
d’évoluer).
La syntaxe :
for(initialisation ; test ; incrément){
instructions
}
L’exemple suivant présente un exemple des différentes structures itératives
3-2 Le HTML au delà de PHP
L’embarquement de code PHP peut se faire «au dela du HTML» : il est possible de commencer une
structure dans une partie script PHP et de la terminer dans une autre partie de script PHP, ce qui n’est
pas possible en Javascript !
Même si l’exemple permet d’entrevoir des possibilités de simplification d’écriture du code PHP, il faut
garder à l’esprit qu’un code trop «entrelacé» risque d’être difficile à relire et à maintenir !
3-3 Quelques variables relatives au WEB
Il est possible de récupérer un ensemble d’informations relatives à la connexion, et plus
particulièrement au navigateur et à la configuration du client. Du côté serveur, il est possible d’obtenir des informations grâce aux variables d’environnement
suivantes :
- DOCUMENT_ROOT : racine du serveur
- HTTP_HOST : nom de domaine du serveur
- SERVER_ADDR : adresse IP du serveur
- SERVER_ADMIN : adresse de l’administrateur du serveur
- SERVER_SIGNATURE type de serveur
Du côté client, il est possible d’obtenir des informations grâce aux variables d’environnement
suivantes :
- HTTP_USER_AGENT : navigateur client
- REMOTE_ADDR : adresse IP du client
L’accès aux informations précédentes, se fait par l’intermédiaire du tableau super global $_SERVER.
Ce tableau est un tableau associatif, qui n’est pas «indexé» par des valeur numériques, mais par le
nom des variables à récupérer.
Par exemple, pour récupérer la valeur du type de serveur on fera :
Apache/ProXad [Jan 23 2019 20:05:45] Server at web.doc.free.fr Port 80
Il est possible d’obtenir la totalité des variables d’environnement en utilisant la fonction phpinfo(),
cette fonction affiche dans la page la configuration générale du serveur, ainsi que les informations
relatives à la configuration de l’interpréteur PHP.
L’exemple suivant nous montre comment obtenir des informations sur le client ainsi que sur le
serveur.
Variables côté serveur :
- Racine du serveur : /mnt/104/sda/3/6/web.doc
- Adresse IP du serveur : 212.27.63.104
- nom de domaine du serveur : web.doc.free.fr
- adresse de l’administrateur du serveur :
- type de serveur : Apache/ProXad [Jan 23 2019 20:05:45] Server at web.doc.free.fr Port 80
Variables côté client :
- navigateur client : Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
- adresse IP du client : 216.73.216.53
Cliquer ici pour retourner à la page d'accueil