Exemple concret de programmation objet sous PHP 5

Comme l'on a vu précédemment, le but même de la programmation orienté est de modéliser de façon naturelle. Avec une telle méthode, il est possible que le code soit compréhensible facilement par les non informaticiens.

C'est pourquoi nous avons utilisé l'exemple de l'Animal pour les classes afin de mieux comprendre le concept. Certes, notre but en utilisant la programmation objet n'est pas de pouvoir endormir un animal. Mais de pouvoir manipuler les objets sachant que le principe reste le même et est applicable pour toute sorte d'objet.

Création d'objet PHP

Un compte bancaire peut aussi être considéré comme étant un objet. Créons alors un classe CarteBancaire et essayons d'instancier un objet de cette classe. Pour cela, l'opérateur new joue un rôle important. Il est aussi obligatoire de donner un nom à l'objet.

Voici alors la syntaxe d'instanciation de l'objet $mon_compte avec la définition de la classe correspondante.

<?php
//définition de la classe
class CompteBancaire
{
 public $numero ="XXXX";
 public $solde = 0;
}

//instanciation
$mon_compte = new CompteBancaire;
?>

Remarques

Ceux qui connaissent Java savent qu'en Java les classes peuvent être définies dans un fichier tout en étant instanciées dans d'autres fichiers du même package sans autre déclaration supplémentaire.

Ceci n'est pas valable en PHP. En PHP, soit on met la classe dans le même fichier que l'instance, soit on le met dans un autre fichier et on fait un include ou un require pour inclure le fichier contenant la classe.

Vérification du type d'un objet

Dans le cas inverse, si on n'a que l'objet, comment savoir de quelle classe il tient ? Pour cela, il suffit d'utiliser la méthode get_class() en mettant l'objet en paramètre.

Dans l'exemple précédent :

//instanciation
$mon_compte = new CompteBancaire;
echo "Cet objet appartient à la classe: ".get_class($mon_compte) ;

Accès à un attribut d'une class

Après avoir créé un objet, voyons maintenant comment l'utiliser. On peut accéder à ces attributs et les manipuler sans problèmes.

Si on veut par exemple afficher la valeur de l'attribut solde de l'objet, on a le code ci-dessous :

//instanciation
$mon_compte = new CompteBancaire;
//Affichage solde
echo "Solde: ".$mon_compte->solde;

Utilisation d'une méthode d'un objet

De la même façon, on peut aussi faire appel à ces méthodes. Les méthodes peuvent retourner une valeur ou rien.

<?php
//définition de la classe
class CompteBancaire
{
  public $numero ="XXXX";
  public $solde = 0;

  function crediter($montant)
  {
   $this->solde += $montant;
  }

  function debiter($montant)
  {
  $this->solde -= $montant;
  }

  function affiche_solde()
  {
   ;echo "Le solde du compte est : ". $this ->solde;
  }

}

//instanciation
$mon_compte = new CompteBancaire;
//utilisation méthode

$mon_compte->debiter(500); echo "Solde: ".$mon_compte->solde;
?>

Une valeur, le principe est le même. Par exemple, on peut ajouter une méthode etat_compte à la classe CompteBancaire, qui retourne l'état actuel du compte.

<?php
class CompteBancaire
{
  public $numero ="XXXX";
  public $solde = 0;

  function crediter($montant)
  {
   $this->solde += $montant;
  }

  function debiter($montant)
  {
   $this->solde -= $montant;
  }

  function affiche_solde()
  {
   echo "Le solde du compte est : ". $this ->solde;
 }

  function etat_compte()
  {

   if ($this->solde >0)
   {
     return "créditeur";
   }
   else
   {
     return "débiteur";
  }

 }
}

//instanciation
$mon_compte = new CompteBancaire;

//créditer un compte : le solde vaut après 500
$mon_compte->crediter(500);

//débiter un compte : Le solde vaut après 200
$mon_compte->debiter(300);
$etat = $mon_compte->etat_compte();
echo "Solde ".$etat." de: ".$mon_compte->solde;
?>

Cet exemple affiche à l'écran :

Solde créditeur de: 200

Une question ? Venez la poser sur notre forum développement web !

A propos de l'auteur

Nicolas Galle

Nicolas Galle est développeur web sénior pour l'agence Aseox.

Newsletter Marketing