class in class benutzen

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

  • Jointy
    antwortet
    hy...

    hat sich erledigt....

    es lag einer simple übergabe eines ""...weil ich alle optionen auf false gesetz hab...

    jetzt funzt auch alles wunderbar...

    besten dank nochmal für deine Hilfe...

    PS: die sql_files sind aus dem PHPBB2 Board zufinden unter ./db/

    kannst dir ja mal anschauen is ne geile sache...um die eingenen scripte gleich für mehrere Datenbank Systeme verfügbar zumachen...

    ist auch alles GNU Public !!!

    die mysql.php hab ich noch einwenig modifiziert...und da lag auch der Fehler...
    sie unterstützt jetzt auch die zusätzlich option für mysql....

    cya Jointy

    Einen Kommentar schreiben:


  • graf
    antwortet
    ich würde was in der art erwarten ...
    PHP-Code:

    function .....() {
        
    $this->db = new sql_db(....);
        
    $connect_id this->db->connect();
        if (!
    $connect_id) {
         .....
        }

    Einen Kommentar schreiben:


  • graf
    antwortet
    jetzt wär' schon zu wissen, was in der Klasse "sql_db" steht.

    was ist denn db_connect_id?

    muss ja eine Instanzvariable der Klasse sein!

    Einen Kommentar schreiben:


  • graf
    antwortet
    hab gerade gemerkt, dass du die Instanz scheinbar nicht ausserhalb der Funktion erzeugen kannst, also :
    PHP-Code:
    class {
       var 
    $cl;

       function 
    A() {
           
    $this->cl = new B();
        }

       function 
    f1() {
          
    $this->cl->setVar($var);
      }

       function 
    tralala() {
          echo 
    $this->cl->var;
       }
    }

    class 
    {
      var 
    $var "class B var";
      
      function 
    setVar($var) {
         
    $this->var $var;
      }

    mit Konstruktor geht's. Find ich aber komisch. Naja .. ka warum das so ist, in andern Sprachen kann man das auch ausserhalb des Konstruktors machen.

    EDIT:
    sooo, nochmal schön gemacht.
    Zuletzt geändert von graf; 02.07.2003, 02:55.

    Einen Kommentar schreiben:


  • Jointy
    antwortet
    hy...

    ebend das geht nicht....genau so hab ich es benutzt !!!

    cya

    PHP-Code:

    // File: index.php


    include("./includes/config.php");
    require(
    "./includes/dbum_class.php");
    require(
    "./includes/db/".$sql_layer.".php");

    $dbum = new dbum$sql_layer $usetbl $debug );


    // Hier wird jetzt die 2 Class initalisiert
    if( !$dbum->dbum_connect$addr $user $pass $usedb $options ) )
    {
       die();  
    // bla bla bla
    }

    und so weiter 

    PHP-Code:

    // File: dbum_class.php

    class
    {
       var 
    $db;
       var 
    $sql_layer;
       var 
    $use_tbl;
       var 
    $debug;
       function 
    dbum$sql_layer $usetbl $debug FALSE )
       {
          
    $this->sql_layer $sql_layer;
          
    $this->use_tbl $usetbl;
          $
    4this->debug $debug;
       }

       function 
    dbum_connect($addr,$user,pass,$usedb,$options = array() )
       {
          
    // Dieser Schritt klappt noch !!!
          
    $this->db = new sql_db($addr,$user,$pass,$usedb,$options);
          
          
    // Und hier kommt obwohl die Verbindung steht immer FALSE raus....das heisst er greift nicht auf die var zu... warum ???
          
    if( !$this->db->db_connect_id )
          {
                
    print_r($this->db->sql_error());
                return 
    FALSE;
          }
          return 
    TRUE;

    Zuletzt geändert von Jointy; 02.07.2003, 02:49.

    Einen Kommentar schreiben:


  • graf
    antwortet
    wenn eine Instanz der Klasse B in einer Methode von Klasse A erzeugt wird, dann kannst du diese Instanz auch nur in der Methode (Methode = Funktion) nutzen.

    Willst Du sie auch ausserhalb der Methode benutzen, musst du ein Objekt der Klasse B als Instanzvariable von Klasse A haben.

    kleines Beispiel?
    PHP-Code:
    class {

       function 
    f1() {
          
    $var "irgendwas";
          
    $cl = new B();
          
    $cl->setVar($var);
      }

       function 
    tralala() {
          echo 
    $cl->var;    // GEHT NICHT
       
    }
    }

    class 
    {
      var 
    $var;
    }



    ABER
    class 
    {
       var 
    $cl = new B();

       function 
    f1() {
          
    $this->cl->setVar($var);
      }

       function 
    tralala() {
          echo 
    $this->cl->var;    // SOLLTE GEHEN
       
    }
    }

    class 
    {
      var 
    $var "class B var";

    Einen Kommentar schreiben:


  • Jointy
    hat ein Thema erstellt class in class benutzen.

    class in class benutzen

    hy...

    ich hab folgenes Problem !!!

    ich hab mir 2 klassen geschrieben die klasse(a) ruft klasse(b) in function 1 von klasse (a) auf...und setzt das objekt auf eine oeffentlich variable in klasse(a)...

    der witz das scheint zu gehen aber versuche ich nun eine function oder variable in klasse(b) auf zu rufen klappt es nicht !!!

    PHP-Code:

    // leider geht diese variante nicht !!!

    $this->var->func();

    $this->var->var
    kann mir da jemand weiter helfen ???

    thx Jointy
Lädt...
X