Pourquoi PHP ?
PHP est un langage côté serveur : le code s’exécute sur le serveur, qui renvoie au navigateur du HTML (ou du JSON). Il fait tourner une très grande partie du web, de WordPress à Laravel en passant par Symfony. Ce cours utilise PHP 8.5, une version moderne, typée et rapide.
On peut exécuter un script dans le terminal avec php script.php, ou via un serveur web. Commençons par le terminal.
Un premier script
<?php
// Commentaire sur une ligne
# Autre style de commentaire sur une ligne
/* Commentaire
sur plusieurs lignes */
echo "Bonjour le monde !\n"; // echo affiche du texte ; \n = retour à la ligne
Deux règles à retenir : un fichier PHP commence par <?php, et chaque instruction se termine par un point-virgule. Dans un fichier qui ne contient que du PHP, on ne ferme pas la balise ?> à la fin (cela évite d’envoyer des espaces parasites).
Les variables
Une variable commence par $. On n’annonce pas son type : il est déduit de la valeur.
<?php
$prenom = "Inès"; // string (chaîne)
$age = 29; // int (entier)
$taille = 1.68; // float (nombre décimal)
$estAbonne = true; // bool (true / false)
$parrain = null; // null : absence de valeur
var_dump($age); // int(29)
var_dump($taille); // float(1.68)
echo gettype($prenom); // string
Les noms sont sensibles à la casse : $age et $Age sont deux variables différentes. On utilise généralement le camelCase ($prixTotal).
Pour une valeur qui ne doit jamais changer, on déclare une constante : const TAUX_TVA = 0.2; (sans $).
Les chaînes de caractères
<?php
$prenom = "Inès";
$ville = 'Lyon';
// Concaténation avec le point
echo 'Bonjour ' . $prenom . ' !' . "\n";
// Interpolation : seules les guillemets doubles remplacent les variables
echo "Bonjour $prenom, tu habites à $ville.\n";
echo 'Bonjour $prenom'; // affiche littéralement : Bonjour $prenom
// Accolades pour lever les ambiguïtés
$produit = "livre";
echo "Deux {$produit}s achetés\n"; // Deux livres achetés
// Quelques fonctions utiles
echo strlen("PHP") . "\n"; // 3 (nombre d'octets)
echo mb_strlen("Inès") . "\n"; // 4 (nombre de caractères, gère les accents)
echo strtoupper("php") . "\n"; // PHP
echo number_format(1234.5, 2, ',', ' '); // 1 234,50
Attention : strlen compte des octets. Avec des accents (UTF-8), utilise les fonctions mb_ comme mb_strlen.
Comparer : == ou === ?
<?php
var_dump(5 == "5"); // bool(true) : conversion de type avant comparaison
var_dump(5 === "5"); // bool(false) : types différents (int vs string)
var_dump(0 == "a"); // bool(false) depuis PHP 8
== convertit les types avant de comparer, ce qui peut surprendre. === vérifie la valeur et le type : c’est la comparaison à privilégier.
À retenir
<?php, point-virgule,echopour afficher.- Variables en
$nom, types déduits,var_dump()pour inspecter. - Guillemets doubles = interpolation ; point = concaténation.
- Utilise
===par défaut.
Exercices
Les solutions et les tests restent sur le serveur. Dans l'espace étudiant, ton code est exécuté et corrigé, et le tuteur donne des indices avant la solution.
Message de bienvenue
Déclare
$prenomvalant"Lina"et$agevalant31(un entier). Construis ensuite$messagepar interpolation pour obtenir exactement :Bonjour Lina, tu as 31 ans.$prenom = ; $age = ; $message = ;Calcul d'un prix TTC
À partir de
$prixHt = 50.0et de la constanteTAUX_TVA = 0.2, calcule$prixTtc(float). Puis crée$affichageavecnumber_formatpour obtenir60,00 €(virgule décimale, une espace puis le symbole euro).const TAUX_TVA = 0.2; $prixHt = 50.0; $prixTtc = ; $affichage = ;Comparaison stricte
Que renvoie
var_dump(10 === "10");?- bool(true)
- bool(false)
- Une erreur fatale
- int(10)
Quiz de fin de leçon
Quel est l’opérateur de concaténation en PHP ?
- +
- .
- &
- ,
Que affiche
echo 'Total : $total';si $total vaut 12 ?- Total : 12
- Total : $total
- Une erreur
Quelle fonction affiche le type et la valeur d’une variable ?
- echo
- var_dump
- gettype
La suite du cours
- Conditions, match et boucles15 min
- Tableaux indexés et associatifs18 min
- Fonctions typées et réutilisables18 min
- PHP et le web : formulaires et sécurité de base20 min