Aller au contenu
M07 · B. Programmer en PHP

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"string $age19int $prix30.5float $enStocktruebool $prenom = "Amina"; string(5) "Amina"string(8) "dix-neuf"float(30.5)bool(true)

$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. afficher
echo "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).

Variables et affectation

$stock = 14;           // création
$stock = $stock - 2;   // nouvelle valeur : 12
$stock -= 2;           // raccourci : 10
$stock++;              // +1 : 11
$nom = "Tajine";
$nom .= " décoré";     // ajoute au texte : "Tajine décoré"

Règles de nommage : $ puis une lettre ou _, ensuite lettres, chiffres, _. On utilise souvent le style camelCase ($prixTtc, $dateCommande).

Constantes

const TVA = 0.20;
const NOM_SITE = "Souk Atlas";
define('FRAIS_LIVRAISON', 35);

echo NOM_SITE;                 // Souk Atlas
$ttc = 100 * (1 + TVA);        // 120

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

TypeExempleRemarque
int180, -3entier
float0.2, 1.5e3le séparateur décimal est le point
string"Fès", 'Safi'texte
booltrue, falserésultat d’une comparaison
array[30, 45, 120]plusieurs valeurs (leçon B.2)
nullnull« 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 doubles
echo '<p>' . $nom . ' : ' . $prix . ' DH</p>';       // concaténation avec le point
printf("<p>%s : %.2f DH</p>", $nom, $prix);          // Huile d'argan : 120.00 DH
echo number_format(1200.5, 2, ',', ' ');             // 1 200,50

Pour un long texte, la syntaxe heredoc évite d’échapper les guillemets :

$html = <<<HTML
<div class="carte">
  <h2>$nom</h2>
  <p>Prix : $prix DH</p>
</div>
HTML;
echo $html;
Exemple simple

Les étiquettes du souk

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 à Safi
echo 'Livraison à $ville';   // Livraison à $ville

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 serveur aucun échange pour l'instant

Consignes 0 / 3

  1. La page affiche « Prix TTC : 384 DH »
  2. La page affiche « Promo : 326.4 DH » (15 % de remise sur le TTC)
  3. 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';

Exercice 2 · Prédire var_dump

Que va afficher var_dump("5" + 3, "5" . 3, 10 / 4, 10 % 4, 7 == "7", 7 === "7"); ?

Voir le corrigé
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.

Voir le corrigé
<?php
$nom = "Tapis berbère";
$prix = 1200;
echo number_format($prix, 2, ',', ' ') . " DH<br>";   // 1 200,00 DH
printf("%s : %.2f DH", $nom, $prix);                  // Tapis berbère : 1200.00 DH

5Vérifier

1. Quel nom de variable est valide en PHP ?
2. Que vaut "10" === 10 ?
3. Quel opérateur colle deux chaînes en PHP ?