Apparation de la visibilité de méthodes prédéfinies en PHP 5

Publié dans PHP objet | Marqué avec , , , , , , ,
Share

La programmation orientée objet existe dans PHP depuis sa version 3, son implémentation a été amélioré dans la version 4, mais c’est seulement depuis la récente version 5 que l’on peut réellement parler de PHP objet. J’ai commencé à lire la partie objet du cours de PHP 5 de Developpez.com et c’est très intéressant. Il existe par exemple une méthode prédéfinie nommée __construct() qui sert de constructeur d’une classe. Cela permet de changer le nom d’une class sans changer le constructeur associé.

<?php
class Blog {
  var $nom;
  var $description;
  function __construct($nom, $description) {
    $this->nom = $nom;
    $this->description = $description;
  }
}
$blogDeBN = new Blog('30 minutes par jour', '30 minutes par jour au coeur de l\'informatique.');
echo $blogDeBN->nom.'<br />';
echo $blogDeBN->description;

Il existe aussi des mots clés comme private, public, protected qui permettent de définir les droits d’accès à des attributs ou à des méthodes. On les utilise à la place du var ou devant le mot clé function.

  • private : l’attribut ou la méthode ainsi définie ne pourra être utilisée que dans la class parente.
  • protected : l’attribut ou la méthode ainsi définie ne pourra être utilisée que dans la class parente et ses dérivées.
  • public (valeur par défaut) : l’attribut ou la méthode ainsi définie ne pourra être utilisée par n’importe qui.

Pratique pour clarifier du code ! Un autre mot clé est static et il permet de rendre un attribut ou une méthode identique pour tous les objets d’une classe. En somme si je change la valeur d’un attribut ou d’une méthode static dans un objet, alors tous les autres objets de cette class auront la même valeur pour cet attribut ou cette méthode. Il y a aussi une histoire de parent, self, static à utiliser avec l’opérateur double points ::, mais je n’ai pas encore bien assimilé.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*