PHP â Les Bases
Variables, types, opĂ©rateurs, conditions et boucles â le socle de tout script PHP.
1 Introduction Ă PHP
PHP (Hypertext Preprocessor) est un langage cĂŽtĂ© serveur exĂ©cutĂ© par un serveur web (Apache, Nginx) ou via la CLI. Le fichier est traitĂ© par l'interprĂ©teur PHP avant d'ĂȘtre envoyĂ© au navigateur.
php -S localhost:8000 dans le dossier du projet.Balises PHP
<?php
// Balise d'ouverture recommandée
echo "Bonjour, monde !";
// Balise courte d'affichage (active par défaut en PHP 5.4+)
// <?= "valeur" ?>
// Dans un fichier HTML
?>
<p>Résultat : <?= htmlspecialchars($variable) ?></p>
Commentaires
<?php
// Commentaire sur une ligne
# Aussi valide (style shell)
/*
Commentaire
sur plusieurs lignes
*/
echo "PHP " . PHP_VERSION; // concaténation avec le point
?> dans un fichier PHP pur â cela Ă©vite les problĂšmes d'espaces blancs parasites avant les headers HTTP.2 Variables & Types
En PHP, toute variable commence par $. PHP est typé dynamiquement : le type est inféré automatiquement. PHP 8 ajoute un typage strict optionnel.
<?php
// DĂ©claration â le type est implicite
$nom = "Alice"; // string
$age = 30; // int
$taille = 1.75; // float (double)
$estActif = true; // bool
$rien = null; // NULL
// Vérifier le type
echo gettype($nom); // string
echo gettype($age); // integer
echo gettype($taille); // double (alias float)
// Inspecter type + valeur
var_dump($estActif); // bool(true)
var_dump($rien); // NULL
print_r([1, 2, 3]); // Affichage lisible des tableaux
Casting explicite
<?php
$str = "42";
$num = (int) $str; // cast en entier â 42
$flt = (float) $str; // cast en float â 42.0
$boo = (bool) $str; // cast en bool â true (car non vide)
// intval, floatval, strval â fonctions alternatives
$n = intval("3.7"); // 3 (troncature)
Constantes
<?php
// define() â Ă©valuĂ©e Ă l'exĂ©cution
define('VERSION', '1.0.0');
define('MAX_USERS', 100);
// const â Ă©valuĂ©e Ă la compilation, utilisable dans les classes
const BASE_URL = 'https://example.com';
echo VERSION; // 1.0.0 (pas de $ pour les constantes)
echo PHP_EOL; // Constante PHP prédéfinie : fin de ligne
== effectue une coercition de type : "1" == 1 est true. Toujours utiliser === pour comparer valeur ET type.3 Opérateurs
Arithmétiques
<?php
echo 10 + 3; // 13
echo 10 - 3; // 7
echo 10 * 3; // 30
echo 10 / 3; // 3.333...
echo 10 % 3; // 1 (modulo)
echo 2 ** 8; // 256 (puissance, PHP 5.6+)
Comparaison
<?php
var_dump(1 == "1"); // true (coercition)
var_dump(1 === "1"); // false (types différents)
var_dump(1 != "2"); // true
var_dump(1 !== "1"); // true (valeur ou type différent)
// Spaceship operator PHP 7+ : -1, 0, 1
echo 1 <=> 2; // -1
echo 2 <=> 2; // 0
echo 3 <=> 2; // 1
Ternaire & Null Coalescent
<?php
$age = 20;
$statut = $age >= 18 ? 'majeur' : 'mineur';
echo $statut; // majeur
// Null coalescent ?? (PHP 7+)
$prenom = $_GET['prenom'] ?? 'Inconnu';
// Ăquivalent Ă : isset($_GET['prenom']) ? $_GET['prenom'] : 'Inconnu'
// Null coalescent affectation ??= (PHP 7.4+)
$config['timeout'] ??= 30; // assigne 30 seulement si null
4 Conditions
if / elseif / else
<?php
$note = 75;
if ($note >= 90) {
echo "Excellent";
} elseif ($note >= 70) {
echo "Bien"; // â sera affichĂ©
} elseif ($note >= 50) {
echo "Passable";
} else {
echo "Insuffisant";
}
switch
<?php
$jour = 'lundi';
switch ($jour) {
case 'lundi':
case 'mardi':
echo "Début de semaine";
break;
case 'vendredi':
echo "TGIF !";
break;
default:
echo "Milieu de semaine";
}
match â PHP 8 (comparaison stricte)
<?php
$statut = 2;
// match utilise === (pas de coercition de type)
$label = match($statut) {
0 => 'Brouillon',
1 => 'Publié',
2, 3 => 'Archivé', // plusieurs valeurs possibles
default => 'Inconnu', // obligatoire si aucun bras ne correspond
};
echo $label; // Archivé
// match SANS default â UnhandledMatchError si aucune correspondance
match est plus strict et plus concis que switch. Préférez-le en PHP 8 pour les correspondances simples avec retour de valeur.5 Boucles
for
<?php
for ($i = 1; $i <= 5; $i++) {
echo $i . " "; // 1 2 3 4 5
}
while & do-while
<?php
$n = 1;
while ($n <= 3) {
echo $n++; // 1 2 3
}
// do-while : s'exécute AU MOINS une fois
$x = 10;
do {
echo $x; // affiche 10 mĂȘme si condition fausse d'emblĂ©e
$x++;
} while ($x < 5);
foreach â le plus utilisĂ© pour les tableaux
<?php
$fruits = ['pomme', 'banane', 'cerise'];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
// Tableau associatif : clé => valeur
$personne = ['nom' => 'Alice', 'age' => 30, 'ville' => 'Paris'];
foreach ($personne as $cle => $valeur) {
echo "$cle : $valeur\n";
}
// Modifier par référence
foreach ($fruits as &$f) {
$f = strtoupper($f); // POMME, BANANE, CERISE
}
unset($f); // IMPORTANT : libérer la référence aprÚs la boucle
break & continue
<?php
for ($i = 0; $i < 10; $i++) {
if ($i === 3) continue; // passer 3
if ($i === 6) break; // arrĂȘter Ă 6
echo $i . " "; // 0 1 2 4 5
}
6 Récapitulatif
Balise ouverture + affichage. Ne jamais oublier ?> avant HTML.
$var / gettype
Variables avec $, gettype() ou var_dump() pour inspecter.
=== strict
Toujours préférer === à == pour éviter les coercitions surprises.
match (PHP 8)
Remplace switch avec comparaison stricte et retour de valeur obligatoire.
?? coalescent
Lecture sécurisée des superglobales : $_GET['key'] ?? 'défaut'.
foreach
Boucle native sur tableaux, arrays associatifs et objets itérables.