Variables, constantes, types et instructions de sortie
La structure d'un script, les variables en $, les constantes, les types de PHP (int, float, string, bool, array, null), la concaténation, et les façons d'afficher (echo, print, printf, var_dump).
1Situer
La page d'accueil de Souk Atlas doit afficher un produit vedette avec son prix, son stock et un prix promotionnel calculé. Ces valeurs sont rangées dans des variables, avec un type, puis écrites dans la page. Ce sont les briques de base de tous les scripts du module.
2Comprendre
Des variables et leurs types
$prenom = "Amina"; crée une boîte nommée $prenom qui contient une chaîne (string).
1 / 5
La structure d’un script
<?php// 1. préparer les données$client="Nadia";
$total=450;
// 2. calculer$total=$total+35; // frais de livraison// 3. afficherecho"Merci $client, total : $total DH";
PHP ne tient pas compte des espaces et des retours à la ligne entre les instructions : on les utilise pour rendre le code lisible. Il distingue en revanche les majuscules dans les noms de variables ($Total et $total sont deux variables différentes).
PHP fournit aussi des constantes prédéfinies : PHP_VERSION, PHP_EOL (fin de ligne), M_PI, et les « constantes magiques » __LINE__, __FILE__, __DIR__ (le dossier du fichier courant, très utile pour les require).
Les types de données
Type
Exemple
Remarque
int
180, -3
entier
float
0.2, 1.5e3
le séparateur décimal est le point
string
"Fès", 'Safi'
texte
bool
true, false
résultat d’une comparaison
array
[30, 45, 120]
plusieurs valeurs (leçon B.2)
null
null
« pas de valeur »
Pour inspecter une variable : var_dump($x) (type + valeur, l’outil de débogage n°1), gettype($x), et les tests is_int(), is_numeric(), is_string()… Pour convertir : (int) "42", (float) "3.5", (string) 7, intval().
Afficher : echo, print, printf
$nom="Huile d'argan";
$prix=120;
echo"<p>$nom : $prix DH</p>"; // variables dans les guillemets doublesecho'<p>'.$nom.' : '.$prix.' DH</p>'; // concaténation avec le pointprintf("<p>%s : %.2f DH</p>", $nom, $prix); // Huile d'argan : 120.00 DHechonumber_format(1200.5, 2, ',', ' '); // 1 200,50
Pour un long texte, la syntaxe heredoc évite d’échapper les guillemets :
Chaque marchandise porte une étiquette avec un nom ($prix) et une valeur (180). On peut changer la valeur écrite sur l'étiquette quand le prix change : c'est une variable. Le taux de TVA, lui, est gravé dans la loi : c'est une constante.
Exemple simple
Guillemets doubles ou simples
Entre guillemets doubles, PHP remplace les variables par leur valeur ; entre apostrophes, il écrit le texte tel quel.
$ville="Safi";
echo"Livraison à $ville"; // Livraison à Safiecho'Livraison à $ville'; // Livraison à $ville
Publicité
3Manipuler
Le produit vedette est décrit par des variables. Complétez le script pour réaliser les consignes, en cliquant sur Exécuter après chaque modification.
Pas à pas dans le lab ↗Cliquez sur Exécuter : PHP 8.3 démarre dans votre navigateur (environ 5 Mo à télécharger, une seule fois).
La page s'affichera ici.
Le navigateur demandera /index.php au serveur, qui exécutera le PHP et renverra du HTML.
Entre le navigateur et le serveuraucun échange pour l'instant
Consignes 0 / 3
La page affiche « Prix TTC : 384 DH »
La page affiche « Promo : 326.4 DH » (15 % de remise sur le TTC)
La page affiche le type de $stock : integer
4Pratiquer
Exercice 1 · Facture simple
Déclarez $article = « Babouches », $prix = 150, $quantite = 3, puis affichez sur une ligne : « 3 x Babouches = 450 DH ».
Voir le corrigé
<?php$article="Babouches";
$prix=150;
$quantite=3;
$total=$prix*$quantite;
echo"$quantite x $article = $total DH";
// ou : echo $quantite . ' x ' . $article . ' = ' . $total . ' DH';
int(8) "5" est converti en nombre pour l'addition
string(2) "53" le point concatène
float(2.5) la division donne un float
int(2) reste de la division
bool(true) == compare les valeurs après conversion
bool(false) === compare aussi le type (int contre string)
Exercice 3 · printf et number_format
Affichez le prix 1200 au format « 1 200,00 DH » avec number_format, puis une ligne « Tapis berbère : 1200.00 DH » avec printf.