Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Instanz bilden innerhalb einer Klasse

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema [Erledigt] Instanz bilden innerhalb einer Klasse.

    [Erledigt] Instanz bilden innerhalb einer Klasse

    Hallo!

    Ich habe eine Klasse. In dieser Klasse möchte ich bei bestimmten Ausführungen eine Instanz einer anderen Klasse bilden. Geht das und wenn ja, wie?

    Bsp.:

    PHP-Code:

    class egal
    {
     function 
    mache()
     {
      
    //Instanz der Klasse kfz bilden
     

     .......
    }

    class 
    kfz
    {
     function 
    auto()
     {


     }
     ........


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Waq
    Alternativ kann man ein Singleton (vorzugsweise parametrisiert) verwenden.
    Würdet ihr das so machen?
    Leider kann ich nichts mit dem Begriff Singleton anfangen. Erklärt ihn bitte mir.

    Wie würdet ihr es machen?

    Einen Kommentar schreiben:


  • Waq
    antwortet
    Der Beitrag wurde verschoben, wegen...
    ... unzureichende Fragestellung.
    ... Postings im falschen Forum.

    Bemerkung:
    Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

    Über den Operator "new" ein Objekt zu erstellen ist nur wirklich trivial, egal ob innerhalb oder ausserhalb eines Objektes.
    Sieht für mich nach einem Problem bei der Fehlersuche aus... und zumindest im Moment sehe ich nichts Fortgeschrittenes an der Frage.

    moved to PHP - Anfänger

    Einen Kommentar schreiben:


  • Waq
    antwortet
    Zitat von superberni
    Kann man das auch so machen?
    Klar. Wenn man nur eine, oder auch eine handvoll, Instanzen einer Klasse haben will, dann baut man sich eben nur so viele, wie man braucht, und verwendet die wieder, indem man sie als Parameter übergibt.

    Alternativ kann man ein Singleton (vorzugsweise parametrisiert) verwenden.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Kann man das auch so machen?

    PHP-Code:
    $class2 = new Klasse2($host$user$passwd);

    class 
    Klasse2
    {
       function 
    Klasse2($host$user$passwd)
       {
       }



    $class1 = new Klasse1($class2);

    class 
    Klasse1
    {
       
       var 
    $class2;
     
       function 
    methode1($class2)
       {
          
    $this->class2 $class2;
       }

    Somit hätte ich die andere Klasse (z.B Template-, DB-Klasse,...) auch in meiner Klasse. Gibt es einen Grund der gegen diese Methode spricht. Für mich ergibt sich der Vorteil, dass ich nicht immer den Konstruktur von der DB-Klasse aufrufen muss.
    Bin schon auf eure Meinungen gespannt.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Re: Instanz bilden innerhalb einer Klasse

    Zitat von André Schmidt
    Ich habe eine Klasse. In dieser Klasse möchte ich bei bestimmten Ausführungen eine Instanz einer anderen Klasse bilden. Geht das und wenn ja, wie?
    a. ja, b. so:
    PHP-Code:

    class egal
    {
     var 
    $andereKlasse false;
     function 
    mache()
     {
        
    $this->andereKlasse = new kfz();
     } 

     function 
    tuWas ($var)
     {
       
    $this->andereKlasse->auto($var)
     }
    }

    class 
    kfz
    {
     function 
    auto()
     {
        print 
    'Ich bin ein ' $var;
     }
    }

    $a = new egal ();
    $a->mache();
    $a->tuWas ('Auto'); 

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Hallo!

    Und genau das habe ich auch versucht. Nur ging es nicht. Also muss es an etwas anderem gelegen haben.

    MfG

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Vorraussetzung: Beide Klassen sind definiert.

    Danach ganz einfach:
    PHP-Code:
    class Klasse1
    {
       function 
    methode1()
       {
          
    $lAndereKlasse = new Klasse2();
          
    $lAndereKlasse->methode2();
       }
    }

    class 
    Klasse2
    {
       function 
    methode2()
       {
       }

    Sollte keine Probleme verursachen.

    Einen Kommentar schreiben:

Lädt...
X