Leçon 6 : Les conditions

Les conditions sont utilisées pour l'exécution d'une partie d'un script, seulement si certains prérequis (conditions) sont réunis. Par exemple, une date qui doit être après le 1er janvier 2012 serait une condition, tout comme une variable dont la valeur doit être supérieure à 7.

If …

Le premier type de condition que nous examinerons est documentationif, qui a la syntaxe suivante :


	if (condition) {
	   Instruction
	}

	

La syntaxe est encore une fois très proche de celle du français ordinaire : Si (if) une condition est remplie, alors exécuter quelque chose. Voyons un exemple simple :


	<html>

	<head>
	<title>Loops </title>
	</head>
	<body>

	<?php

	$x = 2;

	if ($x > 1) {
	   echo "<p>variable $x is greater than 1 </p>";
	}

	?>

	</body>
	</html>

	

if … else …

Le prochain type de condition que nous verrons est documentationelse , que l'on peut présenter sous la forme suivante :


	if (condition) {
	   Instruction
	}
	else {
	   Instruction
	}

	

La syntaxe reste toujours très proche du français : si (if) une condition est remplie, exécuter quelque chose, ou sinon (else), exécuter autre chose.

À la leçon 4, vous avez vu comment trouver le chiffre correspondant à un mois. Dans l'exemple qui suit, nous utiliserons le chiffre du mois dans une condition documentationif documentationelse dans le but de trouver dans quelle saison on se trouve :


	<html>
	<head>
	<title>Conditions</title>
	</head>
	<body>

	<?php

	if (date ("m") == 3) {
	   echo "<p>Now it's spring!</p> ";
	}
	else {
	   echo "<p>I do not know what season it is!</p> ";
	}

	?>

	</body>
	</html>

	

Comme vous le constater, cette condition n'est pas particulièrement sophistiquée : elle ne s'active qu'en mars !

Toutefois, on peut améliorer la condition de nombreuses façons et la rendre plus précise. La liste suivante énumère les opérateurs de comparaison utilisables dans l'instruction :

== Égal à
< Inférieur à
> Supérieur à
<= Inférieur ou égal à
>= Supérieur ou égal à
!= Non égal à

Voici en outre quelques opérateurs logiques :

&& ET
|| OU
! NON

Les opérateurs servent à développer des conditions plus précises, et nous pouvons donc étendre l'exemple précédent afin d'inclure tous les mois du printemps :


	<html>
	<head>
	<title>Conditions</title>

	</head>
	<body>

	<?php

	if (date("m") >= 3 && date("m") <= 5) {
	   echo "<p> Now it's spring!</p> ";
	}
	else {
	   echo "<p> Now it's either winter, summer or autumn!</p> ";
	}

	?>

	</body>
	</html>


	

Examinons la condition étendue :

	date("m") >= 3 && date("m") <= 5
	

La condition peut se traduire par :


	Si le mois est supérieur ou égal à 3, et si le mois est inférieur ou égal à 5

	

Fûté, n'est ce pas ? Les opérateurs jouent un rôle significatif dans beaucoup d'aspects de PHP.

Toujours est-il que ça ne fonctionne qu'avec les mois de mars, avril et mai. Les autres mois ne sont toujours pas couverts par la condition. Poussons donc plus loin le développement de la condition.

if … elseIf … else …

En utilisant

documentationelseif, nous pouvons étendre la condition et faire qu'elle fonctionne pour tous les mois :


	<html>
	<head>
	<title>Loops</title>

	</head>
	<body>

	<?php

	if (date("m") >= 3 && date("m") <= 5) {
	   echo "<p>Now it's spring!</p>";
	}

	elseif (date("m") >= 6 && date("m") <= 8) {
	   echo "<p>Now it's summer!</p>";
	}

	elseif (date("m") >= 9 && date("m") <= 11) {
	   echo "<p>Now it's autumn!</p>";
	}

	else {
	   echo "<p>Now is winter!</p>";
	}

	?>

	</body>
	</html>


	

Écrire des conditions c'est penser de manière logique et être méthodique. L'exemple précédent est plutôt clair, mais les conditions peuvent devenir très complexes.

switch … case

Une autre manière d'écrire une condition est d'employer la méthode documentationswitch :


	switch (expression) {

	case 1:
	   instruction
	   break;
	case 2:
	   instruction
	   break;
	default:
	   instruction
	   break;
	}

	

Cette méthode se fonde sur une expression et puis liste des "réponses" ou "valeurs" différentes avec des instructions en rapport. La méthode s'explique plus facilement à l'aide d'un exemple.

Nous avons vu dans la leçon 4 que la fonction documentationdate("w") retourne le jour courant de la semaine. On peut la mettre à profit dans un exemple où le nom du jour s'affiche (au lieu du chiffre qui correspond au jour) :


	<html>
	<head>
	<title>Loops </title>
	</head>
	<body>

	<?php

	switch(date("w")) {

	case 1:
	   echo "Now it's Monday";
	   break;
	case 2:
	   echo "Now it's Tuesday";
	   break;
	case 3:
	   echo "Now it's Wednesday";
	   break;
	case 4:
	   echo "Now it's Thursday";
	   break;
	case 5:
	   echo "Now it's Friday";
	   break;
	case 6:
	   echo "Now it's Saturday";
	   break;
	default:
	   echo "Now it's Sunday";
	   break;

	}

	?>

	</body>
	</html>

	

La méthode documentationswitch est souvent une meilleure alternative aux conditions documentationif documentationelse. Dans une situation donnée, le choix de la méthode dépendra de celle que vous trouverez la plus aisée et la plus logique. Construire des scripts logiques et concis peut constituer un grand défi.

Dans la prochaine leçon, nous verrons comment ajouter des commentaires à ses scripts afin d'en expliquer le fonctionnement. De bons commentaires sont cruciaux lorsque soi-même ou quelqu'un d'autre doivent effectuer des modifications ultérieures dans le code.



<< Leçon 5 : Les boucles

Leçon 7 : Commenter ses scripts >>