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 true ou false.

Ces opérateurs permettent de gérer des conditions plus complexes (si $a et $b, si $a ou $b, etc.)
$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 :

  1. opérateur ! (NOT)
  2. opérateurs multiplicatifs (*, /, AND)
  3. opérateurs additifs (+, -, OR)
  4. opérateurs de relations
Des parenthèses peuvent être ajoutées pour regrouper des opérations.

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 .

1/3

1/1