Retour à la leçonMission
Mission : traquer un bug de comparaison dans ProduitService
Diagnostiquer un bug de comparaison de types apparu apres une migration PHP 7 vers PHP 8, puis le corriger avec les bons operateurs.
Contexte
Tu reprends le fichier ProduitService.php d'une equipe qui vient de migrer de PHP 7.4 vers PHP 8.2. Une fonction estCodePromoValide(string $code): bool contient simplement return $code == 0; pour detecter un vieux formulaire qui envoyait parfois la valeur 0 quand aucun code n'etait saisi. Depuis la migration, un testeur signale qu'un vrai code promo texte comme PROMO2024 est desormais refuse a tort, alors qu'il fonctionnait avant (a tort egalement, mais dans l'autre sens). Le fichier ne contient ni declare(strict_types=1), ni ===, ni match.