Easy-Micro

LANGAGE POO PHP Part 1
Utilisez les classes

La programmation orientée objet en PHP

Créer et manipuler un objet

<?php
$perso = new Personnage;
On crée une instance de la classe Personnage

Appeler les méthodes de l'objet

Pour appeler une méthode d'un objet, on utilise l'opérateur ->
<?php
class Personnage {
  private $_force = 50;            // La force du personnage, par défaut à 50.
  private $_localisation = 'Lyon'; // Sa localisation, par défaut à Lyon.
  private $_experience = 1;        // Son expérience, par défaut à 1.
  private $_degats = 0;            // Ses dégâts, par défaut à 0.
}

// Nous déclarons une méthode dont le seul but est d'afficher un texte.
  public function parler() {
    echo 'Je suis un personnage !';
  }
}
    
$perso = new Personnage;
$perso->parler();
La dernière ligne signifie donc "va chercher l'objet $perso, et invoque la méthode parler() sur cet objet"

Accéder aux attributs de l'objet

Rappelez-vous : nos attributs sont privés. Par conséquent, ce code lèvera une erreur fatale :
<?php

class Personnage {
  private $_force;
  private $_experience;
  private $_degats;
}
    
$perso = new Personnage;
$perso->_experience = $perso->_experience + 1; // Une erreur fatale est levée suite à cette instruction.
Ici, on essaye d'accéder à un attribut privé hors de la classe. Ceci est interdit.

Accéder à un élément depuis la classe

Il faut demander à la classe d'augmenter l'expérience. Pour cela, nous allons écrire une méthode gagnerExperience() :

<?php
class Personnage {
  private $_experience;
        
  public function gagnerExperience() {
    // Cette méthode doit ajouter 1 à l'expérience du personnage.
  }
}

$perso = new Personnage;
$perso->gagnerExperience();

Oui mais voilà : comment accéder à l'attribut $_experience dans notre méthode? C'est là qu'intervient la pseudo-variable $this. Regardez plutôt cet exemple :
<?php
class Personnage {
  private $_experience = 50;

  public function afficherExperience() {
    echo $this->_experience;
  }
}

$perso = new Personnage;
$perso->afficherExperience();

La ligne echo $this->_experience; signifie : "Donne-moi la valeur de l'attribut $_experience". Donc, pour ajouter 1 à l'attribut $_experience :
<?php
class Personnage {
  private $_experience = 50;

  public function afficherExperience() {
    echo $this->_experience;
  }

  public function gagnerExperience() {
    // On ajoute 1 à notre attribut $_experience.
    $this->_experience = $this->_experience + 1;
  }
}
    
$perso = new Personnage;
$perso->gagnerExperience();   // On gagne de l'expérience.
$perso->afficherExperience(); // On affiche la nouvelle valeur de l'attribut.


Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]