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

Actualités
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.
1-03-2007
TinyButStrong est un moteur de Template pour le language PHP.
20-11-2006
Le LABEL CLE a été décerné au Portail de la Communauté de Communes de Sartilly.
9-11-2006
Depuis sa version 2.0, OpenOffice n'a plus rien à démontrer face aux suites logicielles de bureautiq...
9-11-2006
Disponible dans plus de 33 langues, le nouveau Firefox est encore plus rapide, plus sûr et totalemen...
8-11-2006
Artichow est une librairie qui permet de créer simplement des graphiques avec PHP et GD. On pourra a...
25-08-2006
Le célèbre navigateur "Firefox" est plus performant que jamais. Naviguez sur le Web avec confiance !

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 | F.A.Q. | Accès Client
© 2004-2008 ACCEDO - Siret : 452 155 112 00017
6, Chemin des Moires - 50740 CAROLLES
Tél : 06 83 88 31 78