Aller au contenu principal

Variables/fonctions/boucles

Notions théoriques

Bienvenue dans ce cours de programmation orientée objet en PHP.

Avant de plonger dans le vif du sujet, il est important de réviser les bases de PHP en mode procédural. Cela vous permettra de mieux comprendre les concepts que nous aborderons plus tard.

PHP est un langage de script côté serveur qui est principalement utilisé pour le développement Web. En PHP, nous pouvons déclarer des variables, des fonctions, utiliser des boucles et des conditions, et bien plus encore.

  • Une variable en PHP est déclarée avec le signe $.

    Par exemple,

    $name = "John";

    déclare une variable nommée name et lui affecte la valeur "John".

  • Une fonction en PHP est déclarée avec le mot-clé function, suivi du nom de la fonction et des parenthèses.

    Par exemple,

    function greet() { print("Hello, world!"); }

    déclare une fonction nommée greet qui affiche "Hello, world!" quand elle est appelée.

Les boucles et les conditions en PHP fonctionnent de manière similaire à d'autres langages de programmation.

Par exemple :

  • La boucle for est déclarée avec le mot-clé for, suivi de trois expressions entre parenthèses.
  • La condition if est déclarée avec le mot-clé if, suivi d'une expression entre parenthèses.

Exemple pratique

<?php
// Déclaration d'une variable
$name = "John";

// Déclaration d'une fonction
function greet($firstname) {
print("Hello, " . $firstname . "!");
}

// Appel de la fonction
greet($name);

// Boucle for
for ($i = 0; $i < 5; $i++) {
print($i);
}

// Condition if
if ($name == "John") {
print("Your name is John.");
} else {
print("Your name is not John.");
}
?>

Test de mémorisation/compréhension


Comment déclare-t-on une variable en PHP ?


Comment déclare-t-on une fonction en PHP ?


Comment fonctionne une boucle for en PHP ?


Comment fonctionne une condition if en PHP ?


Quel est le rôle du signe $ en PHP ?



Mise en pratique

Le jeu du nombre mystère

  • Dans votre répertoire "Documents" créez le répertoire tp_nombre_mystere.
  • Dans ce répertoire créez le fichier main.php :
    <?php
    // Jeu du nombre mystère
    print("Démarrage du jeu \n\n");
  • Testez le fonctionnement de ce fichier :
    php main.php

L'objectif du jeu consiste à deviner un nombre entre 1 et 100, qui est défini au hasard par le programme.

Étape 1 : Générer un nombre mystère

Tout d'abord, nous allons générer un nombre mystère aléatoire entre 1 et 100. Pour cela, nous allons utiliser la fonction rand() de PHP https://www.php.net/manual/fr/function.rand.php.

Corrigé de l'étape 1
// Génère un nombre mystère aléatoire entre 1 et 100
$mysteryNumber = rand(1, 100);

Étape 2 : Demander à l'utilisateur de deviner le nombre

Maintenant, nous allons demander à l'utilisateur de deviner le nombre mystère. Pour cela, nous allons utiliser la fonction readline() de PHP qui permet de lire une ligne de l'entrée standard https://www.php.net/manual/fr/function.readline.php.

Corrigé de l'étape 2
// Demande à l'utilisateur de deviner le nombre
$userGuess = readline("Devinez le nombre mystère (entre 1 et 100) : ");

Étape 3 : Vérifier si l'utilisateur a deviné le nombre

Ensuite, nous allons vérifier si l'utilisateur a deviné le nombre mystère. Si l'utilisateur a deviné le nombre, affichez un message de félicitations. Sinon, indiquez si le nombre mystère est plus grand ou plus petit que le nombre saisi par l'utilisateur.

Corrigé de l'étape 3
// Vérifie si l'utilisateur a deviné le nombre
if ($userGuess == $mysteryNumber) {
print("Félicitations, vous avez deviné le nombre mystère !");
} elseif ($userGuess > $mysteryNumber) {
print("Le nombre mystère est plus petit.");
} else {
print("Le nombre mystère est plus grand.");
}

Étape 4 : Ajouter une boucle pour permettre à l'utilisateur de continuer à deviner

Enfin, nous allons ajouter une boucle do-while pour permettre à l'utilisateur de continuer à deviner le nombre mystère tant qu'il ne l'a pas trouvé. La boucle doit se répéter tant que la valeur entrée par l'utilisateur n'est pas égale au nombre mystère.

Corrigé de l'étape 4
<?php

// Jeu du nombre mystère
print("Démarrage du jeu \n\n");

// Génère un nombre mystère aléatoire entre 1 et 100
$mysteryNumber = rand(1, 100);

do {
// Demande à l'utilisateur de deviner le nombre
$userGuess = readline("Devinez le nombre mystère (entre 1 et 100) : ");
// Vérifie si l'utilisateur a deviné le nombre
if ($userGuess == $mysteryNumber) {
print("Félicitations, vous avez deviné le nombre mystère !\n\n");
} elseif ($userGuess > $mysteryNumber) {
print("Le nombre mystère est plus petit.\n");
} else {
print("Le nombre mystère est plus grand.\n");
}
} while ($userGuess != $mysteryNumber);

Étape 5 : Ajouter une indication sur le nombre de tentatives

Enfin, nous allons ajouter une variable ($i) pour afficher, en fin de jeu, le nombre de tentatives pour deviner le nombre mystère.

Corrigé de l'étape 5
<?php

// Jeu du nombre mystère
print("Démarrage du jeu \n\n");

// Génère un nombre mystère aléatoire entre 1 et 100
$mysteryNumber = rand(1, 100);

$i=0;
do {
// Demande à l'utilisateur de deviner le nombre
$userGuess = readline("Devinez le nombre mystère (entre 1 et 100) : ");
$i++;
// Vérifie si l'utilisateur a deviné le nombre
if ($userGuess == $mysteryNumber) {
print("Félicitations, vous avez deviné le nombre mystère en $i tentative(s) !\n\n");
} elseif ($userGuess > $mysteryNumber) {
print("Le nombre mystère est plus petit.\n");
} else {
print("Le nombre mystère est plus grand.\n");
}
} while ($userGuess != $mysteryNumber);

TP pour réfléchir et résoudre des problèmes

Création d'un convertisseur de température

  • Dans votre répertoire "Documents" créez le répertoire tp_convertisseur_temperature.
  • Dans ce répertoire créez le fichier main.php :
    <?php
    // Convertisseur de température
    print("Démarrage du convertisseur \n\n");
  • Testez le fonctionnement de ce fichier :
    php main.php

L'objectif de ce TP est de créer un convertisseur de température qui permet de convertir une température de Celsius en Fahrenheit et vice versa.

Étape 1 : Demander à l'utilisateur la température et l'unité

Tout d'abord, demandez à l'utilisateur :

  • d'entrer une température
  • d'entrer l'unité (C pour Celsius et F pour Fahrenheit).

Utilisez la fonction readline() pour lire ces valeurs.

Étape 2 : Créer 2 fonctions pour convertir la température

Ensuite, créez deux fonctions : celsiusToFahrenheit() et fahrenheitToCelsius().

Ces fonctions doivent prendre une température en paramètre et retourner la température convertie.

info

Pour convertir une température de Celsius en Fahrenheit, vous pouvez suivre ces étapes :

  1. Prenez votre température en degrés Celsius.
  2. Multipliez cette température par 9.
  3. Divisez le résultat par 5.
  4. Ajoutez 32 au résultat.

Cela vous donnera la température en degrés Fahrenheit.

Pour convertir une température de Fahrenheit en Celsius, vous pouvez suivre ces étapes :

  1. Prenez votre température en degrés Fahrenheit.
  2. Soustrayez 32 de cette température.
  3. Multipliez le résultat par 5.
  4. Divisez le résultat par 9.

Cela vous donnera la température en degrés Celsius.

Étape 3 : Utiliser les fonctions pour convertir la température

Enfin, utilisez une instruction if pour déterminer quelle fonction utiliser en fonction de l'unité entrée par l'utilisateur (C pour Celsius et F pour Fahrenheit).

Affichez ensuite la température convertie.

Étape 4 : Testez le fonctionnement de ce programme

php main.php
Une solution