[OOP] class in anderer class verfügbar machen

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

  • [OOP] class in anderer class verfügbar machen

    Hi,
    Habe gerade ein Problem. Habe gerade angefangen mit Klassen zu arbeiten und zu lernen

    Habe jetzt aber ein Problem.

    Und zwar habe ich zuerst eine db-class. Und die will ich jetzt noch in einer neuen class benutzen können.

    also so:

    PHP-Code:
    $db_handler= new db_class

    function neueclass {
        
    //Konstruktur usw.....
        
    function lala() {
            
    $db_handler->sql_query(...);
         }

    was muss ich jetzt machen damit das funktioniert?

  • #2
    Re: [OOP] class in anderer class verfügbar machen

    Original geschrieben von Creativ
    PHP-Code:
    $db_handler= new db_class

    function neueclass {
        
    //Konstruktur usw.....
        
    function lala() {
            
    $db_handler->sql_query(...);
         }

    ich denke das erste soll eine Klasse sein, also class neueclass {...}
    wenn das der fall ist, dann kann das nicht gehen, da die Variable $db_handler nicht innerhalb der Klasse ist, am bessten du macht in der Klasse eine Variable (var $bd_handler) und im Konstruktor machst du daraus eine Instanz der Klasse db_handler... und dann sollte alles gehen

    Phil

    Kommentar


    • #3
      http://ch2.php.net/manual/de/ref.classobj.php
      Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

      Kommentar


      • #4
        Hi,
        Ja sollte class sein, bin etwas verwirrt

        Habe es jetzt so mal probiert:

        PHP-Code:
        class lala {
            var 
        $moep;
            
            function 
        lala($moep) {
                
        $this->moep=$moep;
            }
            
            function 
        getmoep() {
                return 
        $this->moep;
            }
        }


        class 
        comments {
            var 
        $db_handler;
        function 
        comments() {
                    
        $this->db_handler = new lala("2");
            }

        function 
        test() {
                return 
        $db_handler->getmoep();
            }
        }

        $news_c = &new comments();
        echo 
        $news_c->test(); 
        Die Fehlermeldung:

        Fatal error: Call to a member function on a non-object in /home/www/doc/8343/ld-scripts.de/www/oop/index.php on line 68

        Wieso geht das nicht?

        EDIT:

        Will ja sogesehen keine Erweiterung. Soll ja eine eigene Klasse sein.


        Zuletzt geändert von Creativ; 28.03.2005, 18:02.

        Kommentar


        • #5
          wenn dann musst du:

          PHP-Code:
          function test() {  
            return 
          $this->db_handler->getmoep();      

          probier das mal, sollte dann hinhauen

          Kommentar


          • #6
            Also ich löse das für gewöhnlich so:
            PHP-Code:
            class DBAbhaengigeKlasse {
                var 
            $db null;

                function 
            DBAbhaengigeKlasse(&$db) {
                    
            $this->db = &$db;
                }

                function 
            irgendeineMethode() {
                    
            $this->db->query('...');
                    
            // ... usw.
                
            }
            }


            $DB = &new DBClass('...');

            $meinObjekt = &new DBAbhaengigeKlasse($DB); 
            Dann brauchst du nur eine Instanz der DB-Klasse, die du an alle deine anderen Klassen übergeben kannst.
            hopka.net!

            Kommentar


            • #7
              Hi,
              Danke!
              Funktioniert jetzt alles

              Kommentar

              Lädt...
              X