Singleton einer Variablen zuweisen

campari

Erfahrenes Mitglied
Verwende vielleicht die falschen Suchbegriffe, aber konnte nichts dazu finden:

In einer Klasse soll auf eine Singleton Instanz zugegriffen werden. Macht es Sinn, diese Instanz einer Klassen Variablen zuzuweisen:

PHP:
public function __construct() {
        $this->sys = sys::getInstance();
}

Kann dann so auf das Singleton zugreifen
PHP:
$sRoot=$this->sys->config('root');

Kürzer als folgende Schreibweise:
PHP:
$sRoot=sys::getInstance()->config('root');

Bin mir unklar, ob der Speicherverbrauch der ersten Variante höher einzuschätzen ist, als wenn jedes mal wie unten auf das Objekt direkt zugegriffen wird.
Lieg ich komplett falsch, gibts bessere Vorgehensweisen?
 
Normalerweise macht das Aufheben von Singleton-Instanzen keinen Sinn. Wenn du den Speicherverbrauch gleich behalten willst, ist das hier für dich interessant: http://www.php2all.de/manual/language.references.return.html

Du kannst natürlich auch einfach den Namen der Klasse und den Namen der getInstance()-Methode verkürzen, wenn dir die Schreibweise zu lang ist.

EDIT: Speicherverbrauch bleibt bei Singletons gleich. Folgendes Beispiel:

PHP:
<?php
class f
{
	private static $_instance;

	private $x = 5;
	
	private function __construct()
	{
	}
	
	private function __clone()
	{
	}
	
	public static function i()
	{
		if(!self::$_instance)
			self::$_instance = new self;
		
		return self::$_instance;
	}
	
	public function getX()
	{
		return $this->x++;
	}
}

$i = f::i();
$j = &$i;
$k = &$j;

var_dump($i->getX(), $j->getX(), $k->getX());

Gibt aus:

Code:
int 5

int 6

int 7

Ergo, es wird ohnehin die Referenz verwendet.
 
Zuletzt bearbeitet:
Zurück