1.
Syntaxe de Base
1.1 Déclaration de variable
$nom = "John";
$age = 30;
1.2 Constantes
define("PI", 3.14);
const GREETING = "Bonjour!";
2. Structures de Contrôle
2.1 Condition if
if ($age > 18) {
echo "Vous êtes majeur.";
} elseif ($age == 18) {
echo "Vous venez d'atteindre la majorité.";
} else {
echo "Vous êtes mineur.";
}
2.2 Switch
$jour = "lundi";
switch ($jour) {
case "lundi":
• echo "C'est le début de la semaine.";
• break;
case "vendredi":
• echo "C'est presque le week-end.";
• break;
default:
• echo "Un jour normal.";
}
3. Boucles
3.1 Boucle while
$i = 0;
while ($i < 5) {
echo $i++;
}
3.2 Boucle for
for ($i = 0; $i < 5; $i++) {
echo $i;
}
3.3 Boucle foreach
$tableau = array("pomme", "banane", "cerise");
foreach ($tableau as $fruit) {
echo $fruit;
}
4. Tableaux
4.1 Tableaux Numériques
$mois = array("janvier", "février", "mars");
echo $mois[0]; // janvier
4.2 Tableaux Associatifs
$personne = array("nom" => "Dupont", "age" => 25);
echo $personne["nom"];
4.3 Tableaux Multidimensionnels
$personnes = array(
array("nom" => "Dupont", "age" => 25),
array("nom" => "Martin", "age" => 30)
);
echo $personnes[1]["nom"]; // Martin
5. Fonctions
5.1 Définir une Fonction
function addition($a, $b) {
return $a + $b;
}
echo addition(2, 3); // 5
5.2 Fonction avec Valeur Par Défaut
function saluer($nom = "Invité") {
echo "Bonjour, $nom!";
}
saluer(); // Bonjour, Invité!
saluer("Youness"); // Bonjour, Youness!
5.3 Passage Par Référence
function ajouterCinq(&$val) {
$val += 5;
}
$nombre = 10;
ajouterCinq($nombre);
echo $nombre; // 15
6. PHP Orienté Objet
6.1 Classe et Objets
class Etudiant {
public $nom;
public $prenom;
public function afficher() {
• echo "Nom: $this->nom, Prénom: $this->prenom";
}
}
$etudiant = new Etudiant();
$etudiant->nom = "DUPONT";
$etudiant->prenom = "Jean";
echo $etudiant->nom;
echo $etudiant->prenom;
$etudiant->afficher();
6.2 Encapsulation
class Compte {
private $solde;
public function setSolde($montant) {
• $this->solde = $montant;
}
public function getSolde() {
• return $this->solde;
}
}
$compte = new Compte();
$compte->setSolde(1000);
echo $compte->getSolde(); // 1000
6.3 Constructeurs
• Une méthode magique appelée automatiquement lors de l’instanciation d’un objet.
• Définie avec __construct.
Exemple
class Utilisateur {
public $nom;
public function __construct($nom) {
• $this->nom = $nom;
• echo "$nom a été créé.";
}
}
$utilisateur = new Utilisateur("Martin");
6.4 Attributs et Méthodes Statiques
• Les membres statiques appartiennent à la classe et non aux objets.
• Accès avec l’opérateur :: .
Exemple d’Attributs Statiques
class Compteur {
public static $compte = 0;
public static function incrementer() {
• self::$compte++;
}
}
// Utilisation sans créer d'objet
Compteur::incrementer();
echo Compteur::$compte; // 1
6.5 Héritage
• Permet de réutiliser le code d’une classe mère.
• Utilise le mot-clé extends.
Exemple d’Héritage
class Membre {
public $nom;
protected $connexion = false;
public function __construct($nom) {
• $this->nom = $nom;
}
public function seConnecter() {
• $this->connexion = true;
• echo "$this->nom est connecté.";
}
}
class Administrateur extends Membre {
public function creerForum($nomForum) {
• echo "L’administrateur $this->nom a créé le forum $nomForum.";
}
}
$admin = new Administrateur("Youness");
$admin->seConnecter();
$admin->creerForum("PHP avancé");
6.6 Redéfinition de Méthodes
• Une classe fille peut redéfinir une méthode de la classe mère.
• Utilise le mot-clé parent pour appeler une méthode redéfinie.
Exemple de Redéfinition
class ParentClass {
public function saluer() {
• echo "Bonjour du parent.";
}
}
class ChildClass extends ParentClass {
public function saluer() {
• parent::saluer(); // Appelle la méthode de la classe mère
• echo " Et bonjour de l'enfant.";
}
}
$enfant = new ChildClass();
$enfant->saluer();
6.7 Méthodes et Classes Finales
• Les méthodes finales ne peuvent pas être redéfinies.
• Les classes finales ne peuvent pas être héritées.
Exemple
final class BaseClass {
final public function methodeFinale() {
• echo "Cette méthode ne peut pas être redéfinie.";
}
}
6.8 Namespace
• Utilisé pour organiser le code et éviter les conflits de noms.
Exemple
namespace MonApp;
class Utilisateur {
public function afficher() {
• echo "Utilisateur dans MonApp.";
}
}
$utilisateur = new \MonApp\Utilisateur();
$utilisateur->afficher();
6.9 Polymorphisme
• Permet aux classes dérivées d’avoir des méthodes spécifiques avec le même nom que dans la
classe mère.
Exemple
class Animal {
public function parler() {
• echo "L'animal fait un bruit.";
}
}
class Chien extends Animal {
public function parler() {
• echo "Le chien aboie.";
}
}
$animaux = [new Animal(), new Chien()];
foreach ($animaux as $animal) {
$animal->parler();
}
7. Manipulation de Formulaires
7.1 Envoi de Données avec GET
<form method="get" action="traitement.php">
Nom: <input type="text" name="nom">
<input type="submit" value="Envoyer">
</form>
7.2 Traitement des Données
if (isset($_GET["nom"])) {
echo "Bonjour, " . htmlspecialchars($_GET["nom"]);
}
8. Base de Données
8.1 Connexion MySQL avec PDO
try {
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
echo "Connexion réussie!";
} catch (PDOException $e) {
echo "Erreur : " . $e->getMessage();
}
8.2 Exécuter une Requête
$sql = "SELECT * FROM utilisateurs";
foreach ($pdo->query($sql) as $row) {
echo $row['nom'];
}
9. Gestion de Sessions
session_start();
$_SESSION["nom"] = "Youness";
echo $_SESSION["nom"];
10. Design Patterns: MVC
• Séparer les Modèles (données), Vues (interface utilisateur), et Contrôleurs (logique).