Frage zu Klassen

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

  • Frage zu Klassen

    Hi,

    Ich habe eine Fragen zu den Klassen. Wie kann ich, wenn ich z.B. zwei Klassen habe, die erste Klasse in der zweiten Klasse einlesen? Habe bis jetzt mehrere Möglichkeiten getestet, doch es funktionierte keine Variante.

    Vielen Dank für die schnelle Hilfe!

    mfg rogerworld

  • #2
    PHP-Code:
    class class1
    {

    }

    class 
    class2 extends class1
    {

    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ok, danke für die Antwort!

      Edit: Noch ne kleine Frage: Funktioniert das auch, wenn ich z.B. nur die zweite Klasse einlese?

      mfg rogerworld
      Zuletzt geändert von rogerworld; 17.12.2004, 22:19.

      Kommentar


      • #4
        definiere: einlesen
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Also wenn ich einfach nur die zweite Klasse im Script brauche.

          PHP-Code:
          class class1
          {

          }

          class 
          class2 extends class1
          {
          }

          $test = new class2();

          // Oder muss da noch diese Zeile stehen, wegen extends ?
          // $klasse1 = new class1(); 

          Kommentar


          • #6
            Habe noch eine zweite Frage. Wollte das ganze mal ausprobieren, aber wie kann ich jetzt auf die Funktionen der anderen Klasse zugreifen? Es funktioniert leider nicht, wenn ich sie mit $this->beispiel() aufrufe:

            PHP-Code:
            class class1
            {

            function 
            beispiel(){


            }

            }

            class 
            class2 extends class1
            {
            var 
            $test;

            function 
            test(){
            $this->test $this->beispiel();
            echo 
            $this->test;
            }


            Sorry wegen dieser dummen Frage, aber bin halt ein Newbie in Sachen Klassen in PHP.

            mfg rogerworld
            Zuletzt geändert von rogerworld; 17.12.2004, 22:39.

            Kommentar


            • #7
              der code ist ok. das kommentierte brauchst du nicht. nur MUSST du class1 includen, wenn diese in einer extra datei ist. (daher auch das definiere einlesen)


              parent::beispiel();
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Vielen Dank nochmals für deine schnelle Hilfe! Wenn ich das richtig verstanden habe, müsste der Code nun so lauten:

                PHP-Code:
                class class1
                {

                function 
                beispiel(){
                return 
                "Es hat funktioniert!";
                }

                }

                class 
                class2 extends class1
                {
                var 
                $test;

                function 
                test(){
                $this->test parent::beispiel();
                echo 
                $this->test;
                }

                }

                $class = new class2();
                $class->test(); 
                mfg rogerworld
                Zuletzt geändert von rogerworld; 17.12.2004, 22:55.

                Kommentar


                • #9
                  ja. nur solltest du keine variablen nehmen, bei denen der namen auch ein funktionsname ist. nur zur sicherheit.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    alternativ kannst du auch Klasse als Referenz übergeben. Das ist sinnvoll wenn es Mehrere seien sollen

                    PHP-Code:
                    include('home.class.php');
                    $instanz = new HOME($tpl$db$user);

                    class 
                    HOME {

                        function 
                    HOME(&$tpl, &$db, &$user)
                        {
                            
                    //Dbase referenz
                            
                    $this->db = &$db;
                            
                            
                    //Tpl referenz
                            
                    $this->tpl = &$tpl;
                            
                            
                    //User referenz
                            
                    $this->user = &$user;

                             
                    //Aufruf aus der tpl Class
                            
                    $this->tpl->assign('parent''home');
                        }

                    thx Mukraker

                    Kommentar


                    • #11
                      Danke nochmals an beide!
                      Mit den Referenzen könnte ich also auch mehrere Klassen in einer Klasse einbinden, wenn ich das Posting von mukraker richtig verstanden habe.

                      @ Abraxax: Danke für den Tipp!

                      mfg rogerworld

                      Kommentar


                      • #12
                        Original geschrieben von rogerworld
                        Danke nochmals an beide!
                        Mit den Referenzen könnte ich also auch mehrere Klassen in einer Klasse einbinden, wenn ich das Posting von mukraker richtig verstanden habe.

                        @ Abraxax: Danke für den Tipp!

                        mfg rogerworld
                        Du kannst auch ohne referrenzen, Objekte, in ein anderes Objekt, "einbiden".
                        Lässt Du das "&" weg, hast eine Kopie des Objekts. Zumindest in PHP4. In
                        PHP5 wird es anders gehandhabt.

                        http://de.php.net/manual/de/language.oop5.php
                        lese auch:
                        http://de.php.net/manual/de/language.references.php
                        http://de.php.net/manual/de/migration5.php

                        cheers
                        Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                        PHP Sicherheit
                        PHPUnit[1-2]
                        Professionelle Softwareentwicklung mit PHP 5
                        Professionelle PHP 5-Programmierung

                        Kommentar

                        Lädt...
                        X