argh, ci deve essere un errore stupido da qualche parte, ma non capisco dove![]()
Ho una classe che devo usare con la tecnica Singleton (spiegata anche in un articolo di Freephp da Fabio Heller), solo che mi richiama ogni volta il costruttore, quando invece dovrebbe istanziare l'oggetto solo la prima volta![]()
Ecco il codice, semplificato:
Scrive due volte 'a' e invece dovrebbe scriverlo una volta solo. Perché?codice:<?php class ObserverService { private static $instance; private function __construct() { echo 'a'; } function &getInstance() { if(!isset(ObserverService::$istance)) { ObserverService::$instance = new ObserverService(); } return ObserverService::$instance; } } class RequestController { protected $obService; function __construct() { $this->obService = &ObserverService::getInstance(); } } $observerService = &ObserverService::getInstance(); $requestController = new RequestController(); ?>![]()

Rispondi quotando