- 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.

 

Haut de Page

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.

 

Haut de Page

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)

 

Haut de Page

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.

 

Haut de Page

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 Ma...
28-03-2012
Toute nouvelle section sur notre site pour vous présenter une nouvelle rubrique qui sera entièrement...
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 so...
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éch...
29-08-2007
Plusieurs extensions permettent d'intégrer les éléments de cette API mise à disposition par Google.

Liens Utiles


PHP / MySQL

zend.com

nexen.net

phpteam.net

laltruiste.com

phpinfo.net

phpfacile.com


XML & CSS

openweb.eu.org

csszengarden.com

cssbeauty.com

cssvault.com

alistapart.com


LINUX

formation-linux

debian-fr.org

lea-linux.org

 

Services | Solutions | Formations | Portfolio | Photos | Accès Client
© 2004-2012 ACCEDO - Siret : 452 155 112 00017
105, Impasse La Corbière - 50400 GRANVILLE
Tél : 06 83 88 31 78