12 questions pour valider les bases du langage PHP : variables, conditions, boucles, fonctions, tableaux et chaînes.
Répondez à tout, puis cliquez sur Corriger : score et explications s'affichent.
1.1 · Rappel
1. Quelle comparaison privilégier en PHP moderne, et pourquoi ?
=== compare sans conversion : prévisible, et sûr pour les valeurs sensibles.
1.1 · Application
2. Riad assemble « Total : » et le montant $total. Écriture correcte ?
En PHP les chaînes s'assemblent avec le POINT ; + calcule au lieu d'assembler.
1.2 · Rappel
3. Quelle valeur PHP considère-t-il « falsy » de façon piégeuse ?
'0' est falsy : if ($x) la traite comme absente — tester explicitement.
1.2 · Application
4. Riad veut la page demandée, ou 1 si le paramètre est absent — sans écraser un 0 légitime. Écriture ?
?? ne se déclenche que sur null/absence ; le 0 explicite est respecté.
1.2 · Application
5. Le switch des tarifs de Riad applique deux tarifs à la fois. Cause probable ?
Sans break, le switch continue dans le case suivant (fall-through).
1.3 · Application
6. Riad affiche chaque prestation d'un tableau $prestations. Boucle recommandée ?
foreach parcourt sans index manuel : simple, sûr, sans erreur de borne.
1.3 · Arbitrage
7. Catalogue de 200 prestations : Riad cherche un nom et s'arrête dès qu'il le trouve. Arbitrage ?
break évite le travail inutile ; htmlspecialchars reste obligatoire à l'affichage.
1.4 · Rappel
8. Une variable définie DANS une fonction PHP est…
Isolation voulue : tout entre par paramètres, tout sort par return.
1.4 · Application
9. Riad écrit prixTTC(float $ht, float $taux = 0.19): float. Que gagne-t-il ?
Le typage documente, attrape les mauvais types et aide l'outillage.
1.5 · Application
10. Riad stocke une prestation avec son nom et son tarif nommés. Structure adaptée ?
Données nommées = associatif : $prestation['tarif'] dit ce qu'il contient.
1.5 · Arbitrage
11. Un intitulé accentué « Référencement » est mesuré à 14 par strlen au lieu de 13. Arbitrage ?
En UTF-8 un accentué pèse 2 octets : mb_* compte juste les caractères.
1.1 · Arbitrage
12. Riad compare un jeton de réinitialisation avec == et un jeton forgé passe. Arbitrage ?
== avec conversion peut égaliser des valeurs différentes : faille historique — strict obligatoire.
Et après ?
Score ≥ 80 % : passez au Niveau 2 V3 (formulaires, sessions, fichiers et dates — PHP côté serveur qui reçoit et traite les données).
Score entre 50 % et 80 % : reprenez les sections ratées (=== en 1.1, falsy en 1.2, foreach en 1.3, portée en 1.4, tableaux en 1.5), relisez les explications ci-dessus, puis refaites le test.
Score < 50 % : recommencez le niveau en exécutant chaque modèle en local — les bases (variables, conditions, boucles) portent tout le reste.