Ankündigung

Einklappen
Keine Ankündigung bisher.

Klasse aus externer Klasse aufrufen

Einklappen

Neue Werbung 2019

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

  • Klasse aus externer Klasse aufrufen

    Hallo,

    ich möchte aus einer Klasse ($a) eine Klasse ($b) aufrufen, die sich aber in einer anderen Datei befindet.

    Wenn ich zB. $forum->username ausgebe, dann soll in der $forum klasse auf die $html Klasse zugegriffen werden. Wenn beide Klassen in einer Datei währen, könnte es man mit extends versuchen, aber wie mache ich das wenn ich 3 Dateien hab? zB forum.php, forum.class, html.class

    MfG kostja

  • #2
    extends hat doch nichts mit dem Aufruf einer anderen Klasse zu tun. Damit erstellst du auf Grund einer bestenden Klasse eine neue, erweiterte. Um von einer Klasse auf eine andere zugreifen zu können, müssen einfach die Definitionen der Klassen im aktuellen Script vorhanden sein. Dies erreichst du entweder mit include o.ä oder mit [MAN]autoload[/MAN].

    Kommentar


    • #3
      mit extends habe ich gemeint, dass ich die Eigenschaften von $html übernehmen würde und darauf basierend dann einfach meine $forum basteln würde.

      Verstehe ich das richtig ... Wenn ich eine externe Klasse benutzen will, kann ich die wie üblich einfach mit include einfügen definieren und dann wie immer einfach in der neuen Klasse benutzen? Will irgendwie nicht so recht in meinen Kopf

      MfG kostja

      Kommentar


      • #4
        Warum soll das nicht gehen? Wenn du eine Klasse definiert hast, kannst du sie doch überall instanzieren.

        Kommentar


        • #5
          Dateien haben keinen Einfluss auf den Gültigkeitsbereich von ....von irgendwas in PHP.
          Wenn Du etwas einbindest ist das so, also ob der Code der eingebunden Datei an der Stelle des include/require steht.

          Kommentar


          • #6
            PHP-Code:
            <?php

            class Test {

            protected 
            $otherClass;

            public 
            $oHTML;

            public 
            funtion __construct($otherClass) {
                
            $this->otherClass = new $otherClass;
                
            $this->initHTML();
            }

            public function 
            initHTML() {
                
            $this->oHTML = new HTML();
            }

            public function 
            getHTML() {
                return 
            $this->oHTML;
            }

            }

            Kommentar


            • #7
              Die von phpdummi dargestellte Form nennt sich Aggregation

              Kommentar


              • #8
                Stimmt, schon eine Stufe zu weit

                Einfacher:
                PHP-Code:
                 <?php

                class Test {

                public 
                funtion __construct() {
                    
                // do something here
                }

                public function 
                foo() {
                    
                $bar = new bar();
                    
                $bar->foo(); // etc.
                }

                }

                Kommentar


                • #9
                  Oha, cool, ich glaube ich habe alles was ich brauche, danke.

                  Kommentar

                  Lädt...
                  X