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

  • [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()
     {


     }
     ........


  • #2
    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.

    Kommentar


    • #3
      Hallo!

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

      MfG

      Kommentar


      • #4
        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'); 

        Kommentar


        • #5
          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.

          Kommentar


          • #6
            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.
            mod = master of disaster

            Kommentar


            • #7
              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
              mod = master of disaster

              Kommentar


              • #8
                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?

                Kommentar

                Lädt...
                X