- Plan du Site | Contact

Classes et Objets

La programmation orientée objet (POO, pour les intimes) permet d'économiser du code. Elle mérite donc toute notre attention.

 

Le concept d'objet est indissociable du concept de classe.

 

Une classe se crée à l'aide du mot réservé class et d'un identifiant valide.

 

Une classe est une collection de variables et de fonctions travaillant sur ces mêmes variables. Une classe se définit à l'aide de la syntaxe suivante :

 

<?php

class Panier {

var $objets; // Objets de notre panier de commande

// Ajoute $num articles de $art_ref au panier

function ajoute_objet ($art_ref, $num) {

$this->objets[$art_ref] += $num;

}

// Retire $num articles de $art_ref du Panier

function enleve_objet ($art_ref, $num) {

if ($this->objet[$art_ref] > $num) {

$this->objet[$art_ref] -= $num;

return true;

} else {

return false;

}

}

}

?>

 

On définit ici une classe nommée Panier qui consiste en un tableau associatif d'articles du panier avec deux fonctions qui servent à ajouter et supprimer des objets de ce panier.

To top

Utilisation des Objets

Une Classe représente un type particulier de variable. On crée ensuite une variable du type voulu avec l'opérateur new.

 

$panier = new Panier;

$panier->ajoute_objet("10", 1);

 

Ceci crée un objet $panier de la classe Panier. La fonction ajoute_objet() de cet objet est appelée pour ajouter un objet de l'article 10 au panier.

 

To top

Extension de Classe

Les classes peuvent être l'extension d'autres classes. La classe d'extension ou dérivée possède toutes les variables et fonctions de la classe de départ plus ce que l'on y ajoute dans l'éxtension. Ceci est fait avec l'utilisation du mot clé extends. L'Héritage multiple n'est pas supporté (PHP4).

 

A l'intérieur des fonctions d'une classe, la variable $this veut dire "cet objet". On utilise alors $this->quelquechose pour accéder à une variable ou fonction nommée quelquechose dans l'objet courant.

 

class Panier_Nomme extends Panier {

var $proprietaire;

function set_proprietaire ($nom) {

$this->proprietaire = $nom;

}

}

 

On définit maintenant une classe Panier_Nomme qui contient toutes les variables et fonctions de Panier plus une variable supplémentaire $proprietaire et une autre fonction set_propriétaire(). On peut donc créer un panier nommé de la manière habituelle en pouvant y associer un nom de propriétaire. Et on peut toujours utiliser les fonctions de Panier sur Panier_Nomme :

 

$ncart = new Panier_Nomme; // Crée un panier nommé

$ncart->set_proprietaire ("kris"); // Nomme ce panier

print $ncart->proprietaire; // affiche le nom de son propriétaire

$ncart->ajoute_objet ("10", 1); // (fonction héritée de la classe Panier)

 

To top

Constructeurs

Les constructeurs sont des fonctions qui sont automatiquement appelées lorsque l'on crée une nouvelle instance de classe. Une fonction devient un constructeur lorsqu'elle porte le même nom que la classe dans laquelle elle est définie.

 

class Panier_Auto extends Panier {

function Panier_Auto () {

$this->ajoute_objet ("10", 1);

}

}

 

Ceci définit une classe Panier_Auto qui est un Panier plus un constructeur qui initialise le panier avec un objet de l'article n°10 àchaque fois qu'un Panier_Auto est crée avec "new". Un constructeur peut aussi avoir des arguments qui peuvent être optionnels, ce qui les rend beaucoup plus utiles :

 

class Panier_Constructeur extends Panier {

function Panier_Constructeur ($objet = "10", $num = 1) {

$this->ajoute_objet ($objet, $num);

}

}

// Shop the same old boring stuff.

$panier_defaut = new Panier_Constructeur;

// Shop for real...

$panier_different = new Panier_Constructeur ("20", 17);

 

Avertissement : pour des classes dérivées, le constructeur de la classe parente n'est pas appelé automatiquement lors de l'appel au constructeur de la classe dérivée.

 

To top

Note

Si cet article vous a été de quelque secours, n'hésitez pas à laisser un message sur notre Blog / FAQ, il est là pour cela ! Merci.

Informations
6-03-2013
Le site www.laboratoire-ambio.fr vient d'être certifié HONcode.
5-12-2012
Dans le cadre de la procédure de Labellisation auprès des collectivités membres du Syndicat Mixte...
28-03-2012
Toute nouvelle section sur notre site pour vous présenter une nouvelle rubrique qui sera entièreme...
22-08-2009
Un cluster Single System Image (SSI) comme Kerrighed offre la vue d'une unique machine multi-process...
21-08-2009
Grâce aux efforts continus de la communauté open source, Heartbeat2 permet de mettre en place des ...
17-10-2008
Sortie le 13 Oct 2008 et compatible avec Office 2007 de Microsoft la nouvelle mouture de OpenOffice...
29-05-2008
... Et profitez d'un Web meilleur : Mozilla tente d'établir un record du nombre de logiciels télÃ...
29-08-2007
Plusieurs extensions permettent d'intégrer les éléments de cette API mise à disposition par Goog...
Services | Solutions | Formations | Portfolio | Accès Client
© 2004-2015 ACCEDO - Siret : 452 155 112 00033
105, Impasse La Corbière - 50400 GRANVILLE
Tél : 06 83 88 31 78