Principes de programmation
Opérations & conditions
2025 - 2026
Les opérations
L'affectation
L'affectation est une instruction qui permet de donner une nouvelle valeur à une variable.
L'ancienne valeur est totalement effacée de la mémoire. Dans une affectation, l'ordinateur va mettre dans une variable $pokemon une valeur 'pikachu'.
$pokemon = "pikachu";
Les expressions
Les expressions sont les pièces de construction les plus importants de PHP. Presque tout ce qu'on écrit est une expression. La manière la plus simple de définir une expression est : tout ce qui a une valeur.
L'expression est constituée d'opérandes, d'opérateurs et de fonctions.// La totalité de la ligne est une instruction
// Une expression est ce qui suit l'affectation (=)
$hitPoint = $hitPoint - 10;
Les opérandes
On retrouve 3 types :
- Les variables
- Les constantes littérales
- Les constantes définies par le programmeur
Les opérateurs
On retrouve 3 types :
- Les opérateurs et les fonctions arithmétiques
- Les opérateurs de relation
- Les opérateurs logiques
Les opérateurs arithmétiques
Ils portent sur des opérandes de type numérique (entier ou réel). Si les opérandes sont du même type, le résultat le sera lui aussi. (entier + entier = entier ).
Si une opérande est du type réel, le résultat sera toujours de type réel.$a = 1 + 2; // Addition
$a = 1 - 2; // Soustraction
$a = 1 * 2; // Multiplication
$a = 2 ** 2; // Exponentiation
$a = 1 / 2; // Division
$a = (int) (1 * 2); // Division d'entier (retourne une valeur arrondie)
$a = 3 % 2; // Reste de la division entière
Les opérateurs de relation
ou opérateurs de comparaison
Les opérateurs de comparaison, comme leur nom l'indique, permettent de comparer deux valeurs. Le résulat d'une comparaison est toujours un boolean (true ou false).
$a == $b; // Égal (valeur)
$a === $b; // Identique (valeur et type)
$a != $b; // Différent (valeur)
$a !== $b; // Différent (valeur et type)
$a < $b; // Strictement inférieur
$a <= $b; // Inférieur ou égal
$a > $b; // Strictement supérieur
$a >= $b; // Supérieur ou égal
Les opérateurs logiques
Ils portent sur des opérandes de type boolean. Le résultat sera toujours
$a && $b; // Et logique ⭐
$a and $b; // Et logique
$a || $b; // Ou logique ⭐
$a or $b; // Ou logique
!$a; // Négation (logique) ⭐
Tables de vérité
Un opérateur logique est défini par sa table de vérité, qui indique la valeur (true ou false) de l'expression pour chaque combinaison de valeurs.
Autrement dit : une table de vérité permet de tester tout les cas de figures possibles d'une comparaison.Priorité des opérateurs
ou précédence
La priorité des opérateurs spécifie l'ordre dans lequel les valeurs doivent être analysées :
- opérateur ! (NOT)
- opérateurs multiplicatifs (*, /, AND)
- opérateurs additifs (+, -, OR)
- opérateurs de relations
Exercice
Vous êtes un dresseur pokemon, qui décide d'en combattre un autre. Vous envoyez votre pikachu en premier avec 50 points de vie (pv). Il subit une attaque critique qui lui laisse un seul pv. Vous décidez de le soigner avec une potion qui lui rend 30pv.
Transformer cette phrase en plusieurs instructions PHP à l'aide de variables et d'opérations simples qui présentent chaques étapes du combat. Accompagnez les intructions d'un commentaire mettant en scène le combat.
💡 Commencez par une variable représentant le maximum de points de vie.Les conditions
La séquence
Le code PHP est toujours exécuté de manière séquentielle, c'est à dire du début du fichier jusqu'à la fin. L'ordre a donc une importance capitale.
$pokeballs = 3;
$pokeballs = $pokeballs + 1;
$pocket = $pokeballs;
// $pocket vaut 4;
$pokeballs = 3;
$pocket = $pokeballs;
$pokeballs = $pokeballs + 1;
// $pocket vaut 3;
if
Instruction conditionnelle
L'instruction if permet l'exécution conditionnelle d'une partie du code :
if ( /* condition */ ) {
/* instruction */
}
Imaginons que nous sommes un dresseur pokemon et que nous cherchions à capturer des pokemons sauvages. Avant de partir, nous voulons nous assurer du nombre de pokeball en notre possession et en avoir au moins 3, si ce n'est pas le cas nous irons en acheter :
$pokeballs = 2;
// Si nous avons moins de 3 pokeballs
if ( $pokeballs < 3 ) {
/* Nous irons acheter le nombre manquant de pokeballs */
$pokeballs = $pokeballs + 1;
}
else
Instruction conditionnelle
L'instruction else permet d'éxécuter une autre instruction si notre condition n'est pas remplie :
if ( /* condition */ ) {
/* instruction */
} else {
/* autre instruction */
}
Si nous le nombre de pokeball est suffisant, alors nous partons à l'aventure :
$pokeballs = 6;
if ( $pokeballs < 3 ) {
$pokeballs = $pokeballs + 1;
} else {
// Ne s'éxécute que si notre nombre de pokeballs est au moins égale à 3
echo "Allons attraper un Chenipan !";
}
elseif
Instruction conditionnelle
L'instruction elseif permet d'éxécuter une autre instruction après si la condition d'un if ou d'un autre elseif était fausse :
// Si …
if ( /* condition */ ) {
/* instruction */
// Si non est-ce que …
} elseif ( /* condition */ ) {
/* autre instruction */
// Si non
} else {
/* autre instruction */
}
Admettons que nous ayons 5000₽, et que nous nous allions acheter des objets pour nous préparer à traverser une grotte :
$pokedollars = 5000;
if ( $pokedollars >= 4000 ) {
echo "J'achète 4 pokéballs à 1000₽";
$pokedollars = $pokedollars - 4000;
} elseif( $pokedollars >= 1000 ) {
echo "J'achète 2 potions à 500₽";
$pokedollars = $pokedollars - 1000;
} else {
echo "Je ne sais rien m'acheter…";
}
switch
Instruction conditionnelle
L'instruction switch équivaut à une série d'instructions if et elseif . En de nombreuses occasions, vous aurez besoin de comparer la même variable (ou expression) avec un grand nombre de valeurs différentes, et d'exécuter différentes parties de code suivant la valeur à laquelle elle est égale. C'est exactement à cela que sert l'instruction switch.
switch( $a ){
case 0:
echo "$a vaut 0";
case 1:
echo "$a vaut 1";
case 2:
echo "$a vaut 2";
}
break
Instruction conditionnelle
L'instruction break permet de mettre fin à une instruction switch et éviter d'éxécuter du code inutile dans le cas où d'une comparaison réussie :
Dans la plus part des cas, n'oubliez pas de rajouter un break à fin d'un case.switch( $a ){
case 0:
echo "$a vaut 0";
break;
case 1:
echo "$a vaut 1";
break;
case 2:
echo "$a vaut 2";
break;
}
Nous cherchons à capturer un Nosferapti, mais d'autres pokemons peuplent la grotte :
// Nous rencontrons un pokemon
$pokemon = "Racaillou";
// Plusieurs scénarios sont possibles
switch ($pokemon ){
// Si Pikachu
case "Pikachu":
echo "On le combat";
break;
// Si Nosferapti
case "Nosferapti":
echo "On le capture";
break;
// Si Racaillou
case "Racaillou":
echo "On le combat";
break;
}
// Équivaut à cette structure if - elseif
$pokemon = "Racaillou";
if ( $pokemon === 'Pikachu' ){
echo "On le combat";
} else if( $pokemon === 'Nosferapti' ){
echo "On le capture";
} else if( $pokemon === 'Racaillou' ){
echo "On le combat";
}
default
Instruction conditionnelle
default permet d'éxécuter une instruction dans le cas où aucun case n'aurait retourné true. Cela équivaut au else d'une comparaison avec if - elseif.
Cela reste optionel, mais peut s'avérer très utile dans certains cas.switch( $a ){
case 0:
echo "$a vaut 0";
break;
case 1:
echo "$a vaut 1";
break;
case 2:
echo "$a vaut 2";
break;
default:
echo "$a vaut autre chose que 0, 1 ou 2";
}
Nous cherchons à capturer un Nosferapti, mais d'autres pokemons peuplent la grotte :
// Nous rencontrons un pokemon
$pokemon = "Racaillou";
// Plusieurs scénarios sont possibles
switch ($pokemon ){
case "Pikachu":
echo "On le combat";
break;
case "Nosferapti":
echo "On le capture";
break;
case "Racaillou":
echo "On le combat";
break;
default
echo "C'est un pokemon inconnu, fuyons !"
}
// Équivaut à cette structure if - elseif
$pokemon = "Racaillou";
if ( $pokemon === 'Pikachu' ){
echo "On le combat";
} else if( $pokemon === 'Nosferapti' ){
echo "On le capture";
} else if( $pokemon === 'Racaillou' ){
echo "On le combat";
} else{
echo "C'est un pokemon inconnu, fuyons !"
}
Exercice
Un autre dresseur vous provoque en duel avec son Bulbizarre. Vous avez l'avantage et décidez d'envoyer votre Salamèche en combat. Il connait 3 attaques :
- Griffe
- Rugissement
- Flammèche
Transcrivez cela avec if/elseif/else et ensuite avec switch . Vous pouvez afficher le nom de l'attaque avec echo .