zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Singleton Pattern Problem, OOP, PHP

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 06.08.2007, 16:34
Benutzerbild von ArcVieh
//
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 19.12.2006
Ort: Gütersloh
Beiträge: 1.844
ArcVieh sorgt für eine eindrucksvolle AtmosphäreArcVieh sorgt für eine eindrucksvolle Atmosphäre
Standard Singleton Pattern Problem, OOP, PHP

Guten Tag,
ich kam auf die fixe Idee, eine Klasse namens Loader zu schreiben, die sich selbst instanziiert und zugleich auch noch andere Objekte erstellen soll, aber eben nur einmalig.
Das ganze soll nacher noch mit einem Code kombiniert werden, der bestimmte Dateien aus einem Ordner ausließt und die dort enthaltenden Klassen dem Loader zum Fraß vorwirft.

Im Moment ist es nur eine Spielerei.

Mein Problem ist nun, dass er zwar andere Objekte erstellen zu scheint, aber ich nicht auf die Funktionen in denen zugreifen kann. Ich bekomme immer folgende Ausgabe:
Code:
hello world Fatal error: Call to a member function irgend() on a non-object in /srv/www/vhosts/mydomain.tld/httpdocs/loader.php on line 33
Hier mein momentaner Code.
PHP-Code:
<?php
    
class Loader {
        private static 
$instances = array();
        private static 
$instance false;
        private function 
__construct() {
        }
                
//Nun folgt die Funktion die Loader erstellt
        
public static function getInstance() {
            if(
self::$instance === false) {
                
self::$instance = new Loader();
            }
            return 
self::$instance;
        }
                
//"Sammel" Funktion, die andere Instanzen erstellen soll
        
public static function getInstances($var) {
            if(!
in_array($varself::$instances)) {
                
self::$instances[$var] = new $var();
            }
                        
//Direkte Referenz auf das Objekt zurückgegeben
            
return $obj &= self::$instances[$var]; 
        }
    }
    
$obj Loader::getInstance();
    class 
test {
        public function 
test() {
            echo 
"hello world";
        }
        public function 
irgend($var){
            echo 
$var;
        }
    }
    
$test $obj->getInstances('test');
    
$test->irgend('Hallo');
?>
Vielleicht kann mir ja wer auf die Sprünge helfen, wo das Problem liegt.

Danke & Grüße,
ArcVieh
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 06.08.2007, 21:20
Benutzerbild von fox
fox fox ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 11.09.2006
Beiträge: 1.008
fox sorgt für eine eindrucksvolle Atmosphärefox sorgt für eine eindrucksvolle Atmosphäre
Standard

So gehts:

PHP-Code:
<?php
// ...
        //"Sammel" Funktion, die andere Instanzen erstellen soll
        
public static function getInstances($var) {
            if(!
in_array($varself::$instances)) {
                
self::$instances[$var] = new $var();
            }

            
//Direkte Referenz auf das Objekt zurückgegeben
            
return self::$instances[$var];
        }
// ... 
?>
Ein var_dump ($test); hätte vielleicht auch schon geholfen
__________________
:)

Geändert von fox (06.08.2007 um 21:23 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 06.08.2007, 22:21
Benutzerbild von ArcVieh
//
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 19.12.2006
Ort: Gütersloh
Beiträge: 1.844
ArcVieh sorgt für eine eindrucksvolle AtmosphäreArcVieh sorgt für eine eindrucksvolle Atmosphäre
Standard

Oh, danke dir Fox.
Ja, ein var_dump hätte mich vermutlich stutzig machen sollen, ich muss mir das mal angewöhnen.
Der Hintergedanke mit dem &= Operator war, wirklich die Referenz auf das Objekt zu bekommen, was aber natürlich blödsinn war, denn self:instances[$var] liefert es ja.

Vielen Dank,
ArcVieh
Mit Zitat antworten
  #4 (permalink)  
Alt 07.08.2007, 12:13
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 29.07.2005
Beiträge: 1.073
xm22 befindet sich auf einem aufstrebenden Ast
Standard

Objekte werden ab PHP5 sowieso nur als Referenzen übergeben..
__________________
... Meine Meinung
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP, OOP und Array Übergabe laborix Serveradministration und serverseitige Scripte 35 22.12.2010 13:38
problem mit auslesen der radiobuttons per php nevermind Serveradministration und serverseitige Scripte 16 17.06.2006 18:36
Validierungs Problem mit PHP Code débutant (X)HTML 3 01.06.2006 16:08
Problem mit Sessions unter PHP 4.4.0 betrazivis Serveradministration und serverseitige Scripte 7 14.10.2005 12:53
CSS & PHP - daraus entstand Problem im FF tunc (X)HTML 9 14.02.2005 17:41


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:13 Uhr.