Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

PHP - Les classes

Utilisation de classes avec PHP Encyclopédie


La notion de classe

Php3 intègre un soupçon de caractéristiques empruntées aux langages orientés objet, c'est-à-dire la possibilité d'utiliser des objets, entités regroupant des données et des fonctions au sein d'une structure et rendant la programmation plus simple qu'en programmation habituelle (appelée programmation procédurale par opposition à la programmation orientée objet).

On appelle classe la structure d'un objet, c'est-à-dire la déclaration de l'ensemble des entités qui composeront un objet. Un objet est donc "issu" d'une classe, c'est le produit qui sort d'un moule. En réalité on dit qu'un objet est une instanciation d'une classe, c'est la raison pour laquelle on pourra parler indifféremment d'objet ou d'instance (éventuellement d'occurrence).

Une classe est composée de deux parties :

  • Les attributs (parfois appelés données membres): il s'agit des données représentant l'état de l'objet
  • Les méthodes (parfois appelées fonctions membres): il s'agit des opérations applicables aux objets

déclaration d'une classe

Pour pouvoir manipuler des objets, il est essentiel de définir des classes, c'est-à-dire définir la structure d'un objet. Avec Php, cette définition se fait de la manière suivante :

class Nom_de_la_classe {
	// Déclarations des données membres
	var $Donnee_Membre_1;

	var $Donnee_Membre_2;

	var $...
	// Déclarations des méthodes
	function Nom_de_la_fonction_membre1(parametres) {
	liste d'instructions;

	}
}
Nom_de_la_classe représente bien évidemment le type d'objet désigné par la classe ou du moins le nom que vous leur attribuez.

Contrairement aux langages orientés objet comme le C++, Php n'inclut pas dans sa version 3 de niveaux de visibilité des éléments de la classe, il n'y a donc pas de concept d'encapsulation, un des concepts majeurs de la programmation orientée objet.

Contrairement à la déclaration de classes en C++, la déclaration de la classe ne se finit pas par un point-virgule!

Instanciation de la classe

Après avoir déclaré une classe, il faut instancier des objets pour pouvoir l'exploiter. Cette opération se fait à l'aide du mot clé new permettant de faire des objets découlant d'une classe. La syntaxe du mot clé new est la suivante :

$Nom_de_l_objet = new Nom_de_la_classe;
A partir du moment où l'objet est instancié, il possède des propriétés qui lui sont propres, cela signifie que si vous instanciez un nouvel objet, la modification des propriétés de l'un n'influera aucunement sur celles de l'autre.

Il existe une méthode spéciale (portant le même nom que la classe) s'exécutant automatiquement lors de l'instanciation de l'objet. Cette méthode, appelée constructeur est très utile pour initialiser les données membres lors de l'instanciation.

Accéder aux propriétés d'un objet

L'accès aux propriétés d'un objet se fait grâce au nom de l'objet, suivi d'une flêche (->) représentée par un moins (-) et un signe supérieur (>), puis du nom de la donnée membre (sans le signe $). Par exemple :

$Nom_de_l_objet->Nom_de_la_donnee_membre = Valeur;

Accéder aux méthodes d'un objet

L'accès aux méthodes d'un objet se fait comme pour l'accès aux propriétés, c'est-à-dire par le nom de l'objet, suivi d'une flêche et du nom de la méthode. La méthode est suivie de parenthèses, contenant les paramètres, si il y'en a. L'accès à une méthode se fait donc de la façon suivante :

$Nom_de_l_objet->Nom_de_la_fonction_membre(parametre1,parametre2,...);

La variable courante $this

Le mot clé $this permet de désigner l'objet dans lequel on se trouve, c'est-à-dire que lorsque l'on désire faire référence dans une fonction membre à l'objet dans lequel elle se trouve, on utilise this.

Grâce à cette variable spéciale, il est possible dans une fonction membre de faire référence aux propriétés situées dans le même objet que la fonction membre.

Ainsi, lorsque l'on désire accéder à une propriété d'un objet à partir d'une méthode du même objet, il suffit de faire précéder le nom de la donnée membre par $this->. Par exemple :

class Toto{
	var $age;

	var $sexe;

	var $adresse;

	function DefineTotoAge($Age){
	$this->age = $Age;

	}
}

$toto_test = new Toto;

$toto_test->DefineTotoAge(10);

echo "L'age de TOTO : " . $toto_test->age . "<br/>";

Les limitations de l'utilisation de classes avec Php

PHP, dans sa version 3, reste assez limité du point de vue de la programmation objet. La plupart des aspects marquants de la programmation objet ne sont pas présents dans le langage :

Trucs & astuces pertinents trouvés dans la base de connaissances

01/01 03h06 Notice: Undefined index: (Langages)
29/12 16h39 Afficher facilement le code php/xhtml de vos pages (Webmaster)
28/12 00h03 Récupérer login et mot de passe passés par un .htaccess (PHP)
08/12 22h42 Les ressemblances à ne pas confondre (PHP)
02/12 16h02 Vérifier une adresse électronique (format du mail) (PHP)
22/11 23h51 Rediriger sur une autre page (redirection) (PHP)
18/11 01h10 Fonction mail() (PHP)
11/11 01h39 Coloration syntaxique dans vos pages web (Webmaster)
27/10 00h14 Transformer une URL en lien hypertexte cliquable (PHP)
22/09 18h56 Connexion à une base Oracle en php (Oracle)
PHP Classe Plus d'astuces sur « PHP Classe »

Discussions pertinentes trouvées dans le forum

29/11 09h55 php test classe [PHP] Test d'une classe Développement 29/11 12h35->elsadelatoundra4
20/11 15h07 php mysql_fetch_object classe [PHP] mysql_fetch_object avec classe Webmastering 21/11 12h10->Tittom4
07/06 16h34 php classe graphique [PHP] Classe graphique Webmastering 08/06 18h08->JSS3
16/09 17h40 php classé tableau valeur [PHP] comment classé un tableau de valeur... Webmastering 16/09 18h13->Alexandre Mi...2
09/05 16h50 php classe [php] classe Développement 10/05 16h45->jb1
24/10 17h52 php communiquer classe fonctions [php] communiquer entre classe et fonctions Développement 24/10 20h33->kilian1
27/07 13h28 php transmission objet classe PHP et les transmission d'objet classe ... Webmastering 27/07 13h28->delanne0
25/04 21h04 php instance classe page [PHP] instance de classe d'une page à l'autre Webmastering 25/04 21h04->fffonck0
20/01 16h24 php envoi formulaires mail [php] envoi de formulaires par mail Webmastering 09/02 17h19->Ssylvainsab15
26/01 15h56 boucles imbriquées php Problème de boucles imbriquées en PHP Développement 26/01 17h38->hellnino5
Discussion fermée Problème résolu PHP Classe Plus de discussions sur « PHP Classe »

Ce document intitulé « PHP - Les classes » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.