[OOP] class in anderer class verfügbar machen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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

    Comment


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

      Comment


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


        Last edited by Creativ; 28-03-2005, 17:02.

        Comment


        • #5
          wenn dann musst du:

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

          probier das mal, sollte dann hinhauen

          Comment


          • #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!

            Comment


            • #7
              Hi,
              Danke!
              Funktioniert jetzt alles

              Comment

              Working...
              X