Hé, je n’écris pas trop en ce moment. La fin d’année scolaire passe par là : les rendus de projets et les examens fusent de partout. Mais j’arrive quand même à passer un petit peu de temps à découvrir le PHP objet.
L’opérateur cons
L’opérateur cons
ou double points (on l’appelle cons
en CamL, alors pourquoi pas en PHP ?) permet de résoudre un attribut ou une méthode. On le précède d’un mot clé et on le fait suivre d’un nom d’attribut ou de méthode. On va le voir tout de suite en application…
Les mots-clés self et parent
Self
permet de résoudre un attribut ou une méthode de sa propre classe, et parent
ceux de sa classe parente, une dont on hérite.
Place aux exemples
<?php class Blog { var $nom; var $description; var $categorie = 'Billet'; function __construct($nom, $description) { $this->nom = $nom; $this->description = $description; } function ecrire_un_billet() { echo 'Ceci est un billet de blog<br />'; } function modifier_un_billet() { echo 'Je modifie un billet de blog<br />'; } } class BlogPhoto extends Blog { var $categorie = 'Photo'; function ecrire_un_billet() { echo 'Ceci est un billet de blog photo<br />'; } function test_self() { self::ecrire_un_billet(); self::modifier_un_billet(); echo self::$this->nom.'<br />'; echo self::$this->categorie.'<br />'; } function test_parent() { parent::ecrire_un_billet(); parent::modifier_un_billet(); echo parent::$this->nom.'<br />'; echo parent::$this->categorie.'<br />'; } } $blogDeBN = new Blog('30 minutes par jour', '30 minutes par jour au coeur de l\'informatique.'); $blogPhoto = new BlogPhoto('Mon blog photo', 'Des tas de photos partout !'); // Testons les mots-clés : echo 'Self :<br />'; $blogPhoto->test_self(); echo '<br />Parent :<br />'; $blogPhoto->test_parent();
Comme vous pouvez le voir, le mot-clé parent
ne semble pas fonctionner sur un attribut. Je pense que je saisi mal quelque chose. J’ai testé self::nom
, ou self::$nom
, en mettant mes variables en public
ou en static
. Bref. Cette histoire de self
et de parent
semble très simple à première vue mais ça à l’air un tout petit peu plus complexe dans la réalité. Mais la suite de mes lectures me dit que je vais finir par comprendre.