Récapitulatif des Bases de PHP

Syntaxe de Base

ConceptExemple de codeDescription et Usage
<?php ... ?>
<!DOCTYPE html>
<html>
<body>
  <h1>Ma page</h1>
  <p><?php echo "Bonjour le monde !"; ?></p>
</body>
</html>
Le code PHP est exécuté sur le serveur et est délimité par ces balises. Le résultat est ensuite envoyé au navigateur sous forme de HTML. Chaque instruction se termine par un point-virgule (;).
echo, print
echo "Afficher du texte.";
print "Afficher aussi du texte.";
Utilisés pour afficher du contenu (généralement du texte ou du HTML) dans la page. echo est légèrement plus rapide et le plus couramment utilisé.
Commentaires
// Commentaire sur une seule ligne

/*
  Commentaire
  sur plusieurs lignes
*/
Les commentaires sont ignorés par l'interpréteur PHP. Ils sont essentiels pour documenter et expliquer votre code.

Variables et Types de Données

ConceptExemple de codeDescription et Usage
Règles de nommage $ma_variable_valide = 1;
  • Doit commencer par un $.
  • Ne peut pas commencer par un chiffre.
  • Peut contenir des lettres (non accentuées), chiffres et underscores (_).
  • Est sensible à la casse ($age et $Age sont deux variables différentes).
  • Par convention, on utilise le snake_case (minuscules avec underscores).
Déclaration
$nom_variable = "une valeur";
$age = 25;
Une variable en PHP commence toujours par un dollar ($). Son type est déterminé automatiquement par la valeur qu'elle contient.
String (Chaîne)
$prenom = "Nicolas";
echo "Bonjour " . $prenom; // Concaténation

echo "Bonjour $prenom"; // Interpolation
Une suite de caractères. Le point (.) est utilisé pour la concaténation. L'interpolation (insérer une variable dans la chaîne) ne fonctionne qu'avec les guillemets doubles (").
Nombres
$entier = 10;       // Integer (entier)
$decimal = 19.99;   // Float (décimal)
$calcul = $entier * 2;
PHP gère les nombres entiers (integer) et les nombres à virgule flottante (float).
Boolean (Booléen)
$est_admin = true;
$est_majeur = false;
Ne peut avoir que deux valeurs : true (vrai) ou false (faux). Essentiel pour les conditions.

Constantes

SyntaxeExemple de codeDescription et Usage
define()
define("TAUX_DE_TVA", 21);
$prix_htva = 100;
$prix_tvac = $prix_htva * (1 + TAUX_DE_TVA / 100);
Définit une constante globale. Une fois définie, sa valeur ne peut plus être modifiée. Par convention, les noms des constantes sont en majuscules.

Tableaux (Arrays)

TypeExemple de codeDescription et Usage
Array Indexé
$fruits = ["Pomme", "Banane", "Orange"];
echo $fruits[0]; // Affiche "Pomme"
Une liste ordonnée d'éléments. Les clés sont des nombres entiers, commençant à 0.
Array Associatif
$prof = [
    "nom" => "Pirmez",
    "prenom" => "Nicolas",
    "nbre_cours" => 5
];
echo $prof["nom"]; // Affiche "Pirmez"
Une collection de paires clé => valeur. Les clés sont des chaînes de caractères que vous définissez. Très utilisé pour organiser les données.
Créer un tableau vide
$liste_courses = [];
Initialise une variable comme un tableau vide, prêt à être rempli plus tard.
Ajouter un élément
$fruits = ["Pomme", "Banane"];
$fruits[] = "Orange"; // Ajoute à la fin
// $fruits est maintenant ["Pomme", "Banane", "Orange"]
La syntaxe [] sans clé spécifiée ajoute un nouvel élément à la fin d'un tableau indexé.
Modifier un élément
$fruits = ["Pomme", "Banane", "Orange"];
$fruits[1] = "Fraise"; // Remplace "Banane"
// $fruits est maintenant ["Pomme", "Fraise", "Orange"]
Pour modifier un élément, il suffit de lui réassigner une nouvelle valeur en utilisant sa clé (numérique ou associative).
Supprimer un élément
$fruits = ["Pomme", "Banane", "Orange"];
	unset($fruits[1]); // Supprime "Banane"
	// $fruits est maintenant [0 => "Pomme", 2 => "Orange"]
	// Les clés ne sont PAS ré-indexées !
La fonction unset() détruit une variable ou un élément d'un tableau. Attention, pour les tableaux indexés, les indices ne sont pas réorganisés.

Structures Conditionnelles

StructureExemple de codeDescription et Usage
if...elseif...else
$note = 12;
if ($note < 10) {
    echo "Échec.";
} elseif ($note >= 10 && $note < 14) {
    echo "Satisfaction.";
} else {
    echo "Distinction !";
}
Exécute différents blocs de code en fonction d'une série de conditions.
switch...case
$jour = "Lundi";
switch ($jour) {
    case "Lundi":
        echo "Début de semaine.";
        break;
    case "Vendredi":
        echo "Bientôt le week-end !";
        break;
    default:
        echo "Un autre jour.";
}
Alternative à if/elseif quand on teste la valeur d'une seule et même variable. Ne pas oublier le break; pour sortir du bloc.

Opérateurs de Comparaison et Logiques

OpérateurDescriptionOpérateurDescription
==Égal en valeur&& (et)Vrai si les DEUX conditions sont vraies
===Identique en valeur ET en type|| (ou)Vrai si AU MOINS UNE condition est vraie
!=Différent en valeur! (non)Inverse le résultat (vrai devient faux)
<, >Inférieur / Supérieur à
<=, >=Inférieur ou égal / Supérieur ou égal à

Boucles

StructureExemple de codeDescription et Usage
Boucle for
for ($i = 0; $i < 5; $i++) {
    echo $i . "<br>"; // Affiche 0, 1, 2, 3, 4
}
Répète un bloc de code un nombre de fois défini.
Boucle foreach
$couleurs = ["rouge", "vert", "bleu"];
foreach ($couleurs as $couleur) {
    echo $couleur . "<br>";
}
La boucle la plus pratique pour parcourir tous les éléments d'un tableau.
Boucle while
$i = 0;
while ($i < 5) {
    echo $i;
    $i++; // Ne pas oublier d'incrémenter !
}
Répète un bloc de code tant que la condition est vraie. La condition est vérifiée avant chaque exécution.
Boucle do...while
$i = 0;
do {
    echo $i;
    $i++;
} while ($i < 0); // Affiche "0" une fois
Identique à while, mais la condition est vérifiée après chaque exécution. Le bloc de code s'exécutera donc toujours au moins une fois.

Fonctions

ConceptExemple de codeDescription et Usage
Fonction (avec return)
function additionner($a, $b) {
    return $a + $b;
}
$resultat = additionner(5, 3);
echo $resultat; // Affiche 8
Une fonction qui utilise le mot-clé return pour renvoyer un résultat qui peut être stocké dans une variable ou utilisé directement.
Procédure (sans return)
function afficher_titre($texte) {
    echo "<h1>" . $texte . "</h1>";
}
afficher_titre("Ma Page");
Une fonction qui exécute une action (comme afficher du HTML) mais ne renvoie pas de valeur. On l'appelle souvent une "procédure".

Fonctions natives utiles

FonctionExemple d'utilisationDescription
date()echo date('d/m/Y H:i:s');Formate et affiche la date et l'heure actuelles du serveur.
rand()$de = rand(1, 6);Génère un nombre entier aléatoire entre deux bornes (incluses).
strlen()$longueur = strlen("Bonjour");Retourne la longueur (nombre de caractères) d'une chaîne.
isset()if (isset($_POST['nom'])) { ... }Vérifie si une variable est définie et n'est pas null. Essentiel pour vérifier l'existence de données de formulaire.
empty()if (!empty($variable)) { ... }Vérifie si une variable est considérée comme "vide" ("", 0, "0", null, false, tableau vide).
intval() $nombre = intval("42 est la réponse"); Extrait la valeur entière d'une chaîne. Retourne 42 dans cet exemple.
Casting (Transtypage) $nombre = (int) "42.5"; // $nombre vaut 42
$texte = (string) 123; // $texte vaut "123"
Permet de forcer une variable à être considérée comme un autre type. C'est une notation plus directe que les fonctions de conversion.

Gestion des Fichiers

OpérationExemple de codeDescription et Usage
Lecture simple
$contenu = file_get_contents('mon_fichier.txt');
echo $contenu;
La manière la plus simple de lire tout le contenu d'un fichier dans une variable de type chaîne.
Écriture simple
$texte = "Bonjour le monde !";
// Écrase le fichier s'il existe
file_put_contents('nouveau.txt', $texte); 

// Ajoute à la fin du fichier
file_put_contents('log.txt', $texte, FILE_APPEND);
La manière la plus simple d'écrire une chaîne dans un fichier. Très utile pour créer des fichiers de log ou sauvegarder des données simples.
Lecture (caractère par caractère)
$handle = fopen("mon_fichier.txt", "r");
if ($handle) {
    while (!feof($handle)) {
        $caractere = fgetc($handle);
        echo $caractere;
    }
    fclose($handle);
}
La fonction fgetc() lit un seul caractère dans le fichier et avance le curseur. C'est utile pour des analyses très fines de fichiers, bien que moins performant que fgets pour du texte simple.
Lecture (ligne par ligne)
$handle = fopen("mon_fichier.txt", "r");
if ($handle) {
    while (!feof($handle)) {
        $ligne = fgets($handle);
        echo $ligne . "<br>";
    }
    fclose($handle);
}
L'approche la plus courante pour lire un fichier texte (log, CSV...). On ouvre, on boucle tant qu'on n'est pas à la fin du fichier (feof), on lit une ligne (fgets), et on ferme.
Lecture (par bloc)
$handle = fopen("image.jpg", "rb"); // 'b' pour binaire
$contenu = fread($handle, filesize("image.jpg"));
fclose($handle);
Permet de lire un nombre précis d'octets. Utile pour les fichiers binaires (images, PDF...) ou pour traiter de très gros fichiers par morceaux.
Écriture
// 'w' = écrit et écrase, 'a' = ajoute à la fin
$handle = fopen("log.txt", "a");
fwrite($handle, "Nouvelle entrée.\n");
fclose($handle);
Pour écrire dans un fichier. On ouvre avec le bon mode ('w' ou 'a'), on écrit (fwrite), et on ferme pour s'assurer que les données sont bien sauvegardées.

Superglobales : Interaction Web

Les superglobales sont des variables internes à PHP, toujours disponibles, qui permettent d'accéder aux informations de la requête web.

VariableExemple de codeDescription et Usage
$_GET
// Pour une URL : page.php?nom=Doe&age=30
$nom = $_GET['nom']; // Contient "Doe"
$age = $_GET['age']; // Contient "30"
Un tableau associatif contenant les variables passées dans l'URL. Utile pour les liens, les recherches, etc. Ne pas utiliser pour des données sensibles.
$_POST
<!-- Formulaire HTML -->
<form action="traitement.php" method="post">
  <input type="text" name="username">
</form>

// Dans traitement.php
$username = $_POST['username'];
Un tableau associatif contenant les données envoyées via un formulaire HTML avec la méthode method="post". À utiliser pour les formulaires envoyant des données à enregistrer ou sensibles.
$_SESSION
// Au tout début du fichier
session_start();

// Enregistrer une donnée
$_SESSION['user_id'] = 123;

// La récupérer sur une autre page
echo $_SESSION['user_id'];
Permet de stocker des variables qui persistent d'une page à l'autre lors de la visite d'un utilisateur (ex: "panier", "utilisateur connecté"). La fonction session_start() est obligatoire au début de chaque page qui utilise les sessions.

Inclusion de Fichiers

FonctionExemple de codeDescription et Usage
include
include 'header.php';
echo "Contenu de la page.";
include 'footer.php';
Inclut et exécute le fichier spécifié. Si le fichier n'est pas trouvé, une alerte (warning) est générée mais le script continue.
require
require 'database_connection.php';
// Le reste du code ne s'exécute pas si
// le fichier de connexion est manquant.
Identique à include, mais si le fichier n'est pas trouvé, une erreur fatale est générée et le script s'arrête. À utiliser pour les fichiers essentiels.
*_once
require_once 'fonctions.php';
Les versions include_once et require_once s'assurent que le fichier n'est inclus qu'une seule fois, même si la demande est faite plusieurs fois. C'est la meilleure pratique pour éviter des erreurs de redéfinition de fonctions ou de classes.