|
Tweet | Envoyer cette page |
Cours PHP | Plan du site |
Se connecter
Plus que 18 jours pour gagner 5 jeux !
Marre de la pub ? Devenez membre premium !
![]() | 21 décembre 2012 : la fin du monde ? |
![]() | "Il est déjà trop tard" : l'espèce humaine devrait s'éteindre ce siècle |
![]() | Démographie : la vraie vérité qui dérange |
![]() | Les abeilles, témoins du bon état de notre environnement, disparaissent massivement |
![]() | Un nouveau "continent" de déchets a été découvert dans l'océan Atlantique Nord ! |
![]() | Manger autant de viande est une aberration pour l'environnement et la santé |
![]() | Le pic pétrolier mondial : on doit s'y préparer dès maintenant ! |
![]() | Limiter l'augmentation de la température planétaire à 2 ºC n'est plus réalisable |
![]() | Le déclin de l'industrie nucléaire |
![]() | 7 milliards d'habitants sur Terre |
![]() | Pollution de l'air : plus de 2 millions de morts par an |
Marre de la pub ? Devenez membre premium !
Cartes et données mises à jour en "temps réel"Découvrez l'agenda du mois
> > Février 2012 < <
Marre de la pub ? Devenez membre premium !
www.notre-planete.info : environnement, développement durable et sciences de la Terre
Les structures de contrôle permettent notamment d'effectuer des tests sur les valeurs des variables, les résultats des fonctions pour exécuter ou non d'autres instructions en fonction des premiers résultats attendus. La syntaxe utilisée est la même qu'en langage C.
Ce test permet d'exécuter une instruction suivant l'état vrai ou faux de l'expression vérifiée.
if (expression conditionnelle) {
instruction(s) à exécuter si la condition est vraie
}
else {
instruction(s) à exécuter si la condition est fausse
}
<?php
if (!isset($_POST["etape"])) {
echo 'Variable '.$_POST["etape"].' non déclarée !';
}
?>
Ce test, fort utile par la suite, permet de vérifier qu'une variable existe via la fonction isset(). Ceci permet par exemple de savoir si un formulaire HTML a été rempli ou non en vérifant si la variable etape a bien été envoyée.
Nous remarquerons que le "else" n'est pas obligatoire, si aucune clause alternative ne doit être exécutée.
<?php
$mail = "demandeur@fai.com";
$resultat = mail ($mail,"Votre demande d'échange de liens", $corps, $entete);
if ($resultat != 0) { // ou "if ($resultat) {" $resultat = vrai donc différent de 0
echo "Un message a été envoyé à $mail";
}
else {
echo "<font color=\"red\">Erreur : Impossible d'envoyer le message à $mail</font>";
}
?>
Pour l'exemple ci-dessus, nous utilisons la fonction mail() qui est documentée ici et permet d'envoyer des mails automatiquement.
Toute fonction renvoie un résultat lors de son exécution, si celui-ci est différent de 0 (ou FALSE), il est considéré comme bon (ou TRUE) : la fonction a alors été exécutée avec succès.
<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
echo "Malheureux ! Vous utilisez encore Internet Explorer";
else
echo "Bravo ! Vous utilisez $_SERVER['HTTP_USER_AGENT']";
}
?>
Bravo ! Vous utilisez CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Si l'expression conditionnelle peut retourner différents résultats (plus que deux comme vrai ou faux), on peut utiliser "elseif" :
if (expression conditionnelle 1) {
instruction(s) à exécuter si la condition 1 est vraie
}
elseif (expression conditionnelle 2) {
instruction(s) à exécuter si la condition 2 est vraie
}
else (expression conditionnelle) {
instruction(s) à exécuter si toutes les valeurs des expressions précédentes sont fausses
}
Nous noterons que dès qu'une expression conditionnelle est évaluée à "vrai" le code sort du test délimité à la fin par l'accolade, les autres instructions ne seront donc jamais exécutées : c'est tout l'intérêt des structures conditionnelles.
<?php
define ("CP", "<br />Diffusion et reproduction interdite sans accord de l'auteur,
vous êtes autorisés à copier cette photo uniquement pour un usage personnel.");
define ("NPI", "photographe : <font color=\"#00216a\">notre-planete.info</font>
Diffusion et reproduction interdite sans accord, vous êtes autorisés à copier cette photo uniquement
pour un usage personnel, pour d'autres usages, veuillez nous contacter</a>.");
define ("INCONNU", "L'auteur de cette photo n'a pu être identifié, si celui-ci en fait la demande,
son copyright sera inséré ou bien l'image sera immédiatement supprimée du site notre-planete.info.");
define ("LIBRE", "L'image ci-dessus est libre de droit. Diffusion et reproduction à des fins
commerciales interdites.");
define ("NJSC","Image courtesy of Earth Sciences and Image Analysis Laboratory,
NASA Johnson Space Center (http://eol.jsc.nasa.gov)");
echo "Auteur : $auteur - droits : ";
if ($auteur == "notre-planete.info") {
echo NPI;
}
elseif (($auteur == "IGN") || ($auteur == "NASA")) {
echo LIBRE;
}
elseif ($auteur == "NASA Johnson Space Center") {
echo NJSC;
}
elseif ($auteur == "") {
echo INCONNU;
}
else {
echo CP;
}
?>
Sur cet exemple, à chaque contôle, on procède en fait par élimination.
L'instruction switch clarifie le code et évite plusieurs if imbriqués ou l'utilisation de elseif.
Cette instruction liste une série d'actions à exécuter en fonction du résultat d'une variable. PHP n'exécutera que le cas où la valeur présente dans la liste est égale à l'expression conditionnelle à évaluer au départ. En effet, la commande break permet de sortir du swich dès que la valeur a été trouvée et le code correspondant exécuté.
switch ($variable) {
case valeur1 :
instruction(s) 1;
break;
case valeur2 :
instruction(s) 2;
break;
...
case valeurn :
instruction(s) n;
break;
default :
instruction(s) par défaut si aucune valeur ne correspond à la valeur de la variable
break;
}
Attention ! Si la commande break est omise, les instructions suivantes seront exécutées (ce qui peut aussi être le but recherché...)
<?php
$mois_en_cours = date("m");
switch ($mois_en_cours) { // switch (date("m")) fonctionne aussi
case 1 :
$mois = "janvier";
break;
case 2 :
$mois = "février";
break;
case 3 :
$mois = "mars";
break;
case 4 :
$mois = "avril";
break;
case 5 :
$mois = "mai";
break;
case 6 :
$mois = "juin";
break;
case 7 :
$mois = "juillet";
break;
case 8 :
$mois = "août";
break;
case 9 :
$mois = "septembre";
break;
case 10:
$mois="octobre";
break;
case 11:
$mois="novembre";
break;
case 12:
$mois="décembre";
break;
}
echo "Lettre d'information mensuelle $mois ".date("Y");
?>
Dans cet exemple, puisque la fonction date() ne nous retourne pas les mois sous forme littérale en français, il nous faut créer, pour l'envoi de la lettre d'informations, un switch qui affectera à la variable $mois le mois de l'année en cours en fonction du résultat de date("m") qui retourne un entier entre 1 et 12 correspondant au mois en cours. Ce qui nous donnera :
Lettre d'information mensuelle février 2012
Haut de page ^
Offres d'emploi et CV
Livres et DVD
Associations
Communiqués
Agenda
Flux RSS
Partenaires
Page mise à jour le 30/11/2011 20 connectés© 2001-2012 notre-planete.info® v. 5.69 - tous droits réservés
notre-planete.info est un site indépendant qui informe et sensibilise objectivement sur l'environnement, l'écologie, les sciences de la Terre et le développement durable
Mentions légales |
Presse |
Publicité |
Contact |
Liens et logos |
Soutenez notre-planete.info !