Mailinglisten-Archive |
Hallo isset() ist auch "false", falls der key einen value von NULL hat, daher besser array_key_exists nutzen, auch wenn es hier wohl isset besser ist, wollte ich aber trotzdem kurz anmerken ;) Grüße Robert -----Ursprüngliche Nachricht----- Von: php-bounces at phpbar.de [mailto:php-bounces at phpbar.de] Im Auftrag von Sascha Grossenbacher Gesendet: Mittwoch, 19. Mai 2010 17:50 An: deutschsprachige PHP-Mailingliste Betreff: Re: [php] Singleton in mehrfach extendeten Klassen inkl. autoload... Hallo 2010/5/19 Jens Reinemuth <jens at reinemuth.info>: > Hallo allesamt, > > stehe hier grad tooootal auf dem Schlauch. > > Ich habe eine Basis-Klasse namens "openWebX", welche alle > magic-Functions beinhaltet, um z.B. bei __get eine Exception zu > schmeissen o.ä. > > Nun habe ich da auch versucht eine Singleton-Funktion zu bauen, a la: > > class openWebX { > > public static $instances = array(); > > private function __construct() { > } > > static function init($strObject,$mixedParams='') { > if(!in_array($strObject, self::$instances)) { in_array() prüft den *Wert*, du willst jedoch den Key prüfen. Also einfach if (!isset(self::$instances[$strObject])).... Hinweis am Rande, starke Kopplung, also z.B. wie in deinem Fall alle Klassen von einer zentralen Klasse ableiten ist eine keine gute Architektur. Siehe auch http://de.wikipedia.org/wiki/Lose_Kopplung Gruss Sascha -- ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de ** Informationen: http://www.phpbar.de http://lists.phpbar.de/mailman/listinfo/php
php::bar PHP Wiki - Listenarchive