URL: https://linuxfr.org/forums/programmation-php/posts/poo-pour-les-gourous-du-php Title: POO pour les gourous du PHP Authors: spongurex Date: 2004年07月19日T00:02:12+02:00 Tags: Score: 0 Bonjour à tous, je souhaitais faire un petit test rapide. J'ai donc écrit ce code : <?php error_reporting(E_ALL); class Page { var $a = 0; function get() { $me = Page::instance(); return $me->a; } function set($value) { $me = Page::instance(); $me->a = $value; } function & instance () { static $instance = false; if (!$instance) { $instance = new Page (); } return $instance; } } echo Page::get()."< br >"; Page::set(3); echo Page::get()."< br >"; ?> A l'execution, j'obtiens : 0 0 ==> conclusion, la variable $a n'est pas modifié par la fonction set() Ma première idée a été de vérifié que instance() ne re-créait pas l'objet à chaque appel. ==> La fonction instance() ne créer pas un nouvel objet à chaque fois qu'elle est appeler. (j'ai fait un simple echo() dans le if pour vérifier) Je ne sais vraiment pas d'où peut venir ce problème. J'espère que ce n'est pas une erreur grossière. Merci. PS : la fonction instance() est issue du projet Copix, elle est vraiment pratique. Elle permet d'utiliser une classe tout en se passant de la création d'un objet.