Complement PHP
Complement PHP
Complément PHP
Classes et objets
♦ Classe :
▪ Une classe est un type de données défini par le programmeur. C’est une sorte de
moule à partir duquel sont engendrés les objets réels qui s’appellent des instances
de la classe considérée.
▪ Une classe PHP (créée à l’aide du mot clé « class » suivi du nom de la classe)
regroupe :
* des variables d’instance (appelées attributs ou propriétés), représentés par des
variables PHP. Syntaxe :
[public|protected|private] [static] [typeAttribut] nomAttribut;
* des méthodes manipulant ces variables, définies par des fonctions PHP.
class MaClasse {
// Définition des propriétés et des méthodes
}
▪ Le nom de la classe peut être quelconque à condition que ce ne soit pas un mot
réservé en PHP. Il doit commencer par une lettre ou un underscore, suivi de
n'importe quel nombre de chiffres, ou de lettres, ou d'underscores.
20/01/2023 Prof. Hafida ZROURI 2
Classes et objets
♦ Objet :
▪ Une classe permet de créer des objets (ou instances de classe) au moyen d'un
constructeur appelé à l’aide de l’opérateur new suivi du nom de la classe :
$objet = new MaClasse();
▪ Pour détruire cet objet en mémoire :
unset($objet);
▪ En PHP, soit on met la classe dans le même fichier que l'instance, soit on la
met dans un autre fichier et on fait un include ou un require pour inclure le
fichier contenant la classe. (à la différence de Java où les classes peuvent être
instanciées dans d'autres fichiers du même package).
Remarque :
En absence de déclaration de visibilité, l'attribut ou la méthode est
considéré comme public (compatibilité avec PHP 4).
▪ PHP permet de définir des constantes dans une classe en utilisant le mot clé const. Le
nom de la constante ne commence pas par un $.
▪ Les constantes s’utilisent de manière statique et peuvent être définies comme publique,
privée ou protégée. Les constantes déclarées sans mot clé de visibilité explicite sont
définies en tant que public.
Exemple :
class Personne {
const NBRE_YEUX = 2;
const NBRE_MAINS = 2;
…
public function __construct() { … }
public function affiche() {
echo self:: NBRE_YEUX. ",… ". self:: NBRE_MAINS;
}
…
}
20/01/2023 Prof. Hafida ZROURI 11
Classes et objets
♦ Clonage d’objet :
▪ Permet d'effectuer une copie exacte d'un objet mais en lui affectant une zone de
mémoire différente de celle de l'objet original.
▪ Contrairement à la copie avec "=" ou à la référence avec "&", les modifications
sur l'objet cloné ne sont pas répercutées sur l'original.
Remarque : Avec PHP5 (et >5) les objets sont passés (par défaut) par référence
aux fonctions.
▪ Syntaxe :
$objetclone = clone $objet;
▪ Exemple :
class Voiture { public $marque = "ford"; }
$MaVoiture1 = new Voiture();
$MaVoiture2 = clone $MaVoiture1;
$MaVoiture2->marque = 'ferrari';
echo $MaVoiture1->marque; // affiche "ford"
Exemple :
<?php
class Voiture {
function __tostring() {
return "Vous êtes dans la classe 'voiture' ";
}
}
$maVoiture = new Voiture();
echo $maVoiture; // affiche : Vous êtes dans la classe 'voiture'
?>
▪ Une méthode finale (déclarée par le mot clé final) est une méthode qui ne peut pas être
redéfinie dans les sous-classes.
Exemple :
class A {//…
final public function f($x) {…}
}
class B extends A { //…
public function f($x) {…} // Erreur
}
♦ L'objet lancé doit être une instance de la classe Exception (ou une de ses
sous-classes). Autrement, on aura une erreur fatale émise par PHP.
Remarques :
- La méthode prepare() retourne un objet de type PDOStatement si le serveur de
base de données prépare avec succès la requête. Dans le cas contraire elle retourne
FALSE ou émet une exception PDOException.
- La méthode execute() retourne TRUE en cas de succès ou FALSE sinon.