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
nameet 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
greetqui 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
forest déclarée avec le mot-cléfor, suivi de trois expressions entre parenthèses. - La condition
ifest 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
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èreprint("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 et le stocker dans la variable $mysteryNumber.
Pour cela, nous allons utiliser la fonction rand() de PHP https://www.php.net/manual/fr/function.rand.php.
La fonction rand() génère des nombres pseudo-aléatoires. Pour des usages cryptographiques (tokens, mots de passe), préférer random_int() qui garantit une meilleure entropie et est disponible depuis PHP 7.
Étape 2 : Demander à l'utilisateur de deviner le nombre
Maintenant, nous allons demander à l'utilisateur de deviner le nombre mystère et stocker sa saisie dans la variable $userGuess.
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.
readline() retourne toujours une chaîne de caractères. Penser à convertir la valeur en entier avec intval() ou (int) avant de faire des comparaisons numériques pour éviter des comportements inattendus.
É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.
Préférer l'opérateur === à == pour les comparaisons strictes (valeur ET type). Ici == convient car on compare deux entiers, mais dans d'autres contextes == peut donner des résultats inattendus (ex : 0 == "abc" est true en PHP).
É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é.
Pour avoir des informations sur l'utilisation de la boucle do-while en PHP, vous pouvez consulter la documentation officielle https://www.php.net/manual/fr/control-structures.do.while.php.
La boucle doit se répéter tant que la valeur entrée par l'utilisateur n'est pas égale au nombre mystère.
La boucle do-while garantit que le corps est exécuté au moins une fois avant de vérifier la condition, ce qui est idéal pour les saisies utilisateur. Utiliser while ou for quand l'exécution peut être nulle dès le départ.
É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.
Nommer les compteurs de manière explicite ($nombreTentatives plutôt que $i) améliore la lisibilité du code. Réserver $i, $j, $k aux boucles for classiques où le contexte est évident.
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ératureprint("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.
Pour convertir une température de Celsius en Fahrenheit, vous pouvez suivre ces étapes :
- Prenez votre température en degrés Celsius.
- Multipliez cette température par 9.
- Divisez le résultat par 5.
- 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 :
- Prenez votre température en degrés Fahrenheit.
- Soustrayez 32 de cette température.
- Multipliez le résultat par 5.
- 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
Vous devez être connecté pour voir le contenu.