h90214: Require-Daten in Klassen-Variablen ..Hilfe

hi.

ich suche jetzt seit ein paar stunden nach einer lösung - ohne erfolg.

es ist eigentlich ganz simpel:

(habe php 5 und mysql)

in einer datei stehen meine DB-Zugangsdaten alá:

  
db_user="test";  
.  
.  
.  

und ich habe eine Klasse in einer wiederum seperaten datei.

  
require(db.php)  
class geo{  
.  
.  
.  
}

Das einzige was ich möchte, ist die variablen an die klasse zu übergeben.
aber das gelingt mir nicht!

kann mir jemand helfen?
(get set, __contruct etc. habe ich schon erfolglos probiert)

  1. Mahlzeit h90214,

    require(db.php)

    Was genau soll das sein, was dort in Klammern steht? Ein String mit dem Namen einer Datei, den require() (genauso wie include()) erwartet, ist das jedenfalls nicht ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. hei EKKi

      danke für die antwort.
      sorry für die ungenaue angebe. hab das nur kurz runtergeschrieben. im script hab ich das stehen:

      require('../db/db.php');

      das ist auch nicht mein problem. ich bekomme ja die daten in die "dateiebene" aber eben nicht in die "klassenebene"

      auch mit global ging es nicht.

      also:

      anderes bsp.:

      <?php  
      $mahlzeiten = 3;  
        
      class essengehen{  
      //wie bekomme ich die variable $mahlzeiten hier rein?  
      }  
      ?>
      
      1. Hello,

        $mahlzeiten = 3;

        class essengehen{
        //wie bekomme ich die variable $mahlzeiten hier rein?
        }
        ?>[/code]

        Wie werden den Eigenschaften in Klassen festgelegt?
        Gibt es unterschiedliche Arten von Eigenschaften? Flüchtige und persistente?
        Wie unterscheidet man die Zugriffsrechte auf Eigenschaften von Klassen?

        Was ist eine Methode?
        Was versteht man unter den speziellen Methoden "Getter" und "Setter"?

        siehe hierzu auch http://www.php.net/manual/en/language.oop5.php

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Grüß Gott

          Ich habe geschrieben, dass ich schon gesucht habe. Auch diese Seite habe ich mir schon angeschaut. Aber danke.

          1. Hello,

            Ich habe geschrieben, dass ich schon gesucht habe. Auch diese Seite habe ich mir schon angeschaut. > Aber danke.

            Bitte, gerne geschehen, :-P

            Du schreibst in deinem Eröffnungsposting etwas von:
            "(get set, __contruct etc. habe ich schon erfolglos probiert)"

            Aber leider zeigst Du deine Versuche nicht. Du erzählst leider auch nicht, wie weitreichend Deine Erfahrungen in der Programmierung, in PHP und im Speziellen in der PHP-OO-Programierung sind.

            Wo müssen wir Dich denn abholen?

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. nunja, anscheinend stehe ich ziemlich am anfang, ich es jetzt, auf die gleiche weise wie ich es am anfang versuchte, hinbekommen habe und nicht verstehe warum es am anfang nicht ging.

              egal wie. falls jemand irgendwann ein ähnliches problem haben sollte:

              hier der script (ausschnitt aus der klasse):

                
              function geo(){  
              		require('sysdat/php/db/db.php');  
              		$this->mysql_host=$mmysql_host;  
              		$this->db_name=$mdb_name;  
              		$this->db_user=$mdb_user;  
              		$this->db_pass=$mdb_pass;  
              		$this->gen_ip();  
              	}  
                
              
              
              1. Hallo,

                nunja, anscheinend stehe ich ziemlich am anfang, ich es jetzt, auf die gleiche weise wie ich es am anfang versuchte, hinbekommen habe und nicht verstehe warum es am anfang nicht ging.

                ja, das sieht man an Deinem Code. Sowas macht man nicht.

                egal wie. falls jemand irgendwann ein ähnliches problem haben sollte:
                hier der script (ausschnitt aus der klasse):

                dann soll derjenige wissen, dass man ein solches Problem *auf gar keinen Fall* so behebt, wie es nun folgt:

                [code lang=php]
                function geo(){
                require('sysdat/php/db/db.php');
                $this->mysql_host=$mmysql_host;
                $this->db_name=$mdb_name;
                $this->db_user=$mdb_user;
                $this->db_pass=$mdb_pass;
                $this->gen_ip();
                }

                Ein Einbinden von anderen Ressourcen innerhalb einer Klassendefinition deutet in den meisten Fällen (bei PHP) auf einen massiven Fehler hin.

                Du könntest zum Beispiel:

                a) diese Daten im Konstruktor übergeben
                  b) diese Daten per Setter setzen
                  c) einfach eine Datenbankverbindung übergeben
                  d) die benötigten Daten von einer Hilfsklasse liefern lassen
                     und sich die Klasse auf ihren Spezialkram konzentrieren lassen.

                Freundliche Grüße

                Vinzenz

      2. Hallo,

        sorry für die ungenaue angebe. hab das nur kurz runtergeschrieben. im script hab ich das stehen:
        require('../db/db.php');

        tja, das war der offensichtlichste Fehler.

        <?php

        $mahlzeiten = 3;

        class essengehen{
        //wie bekomme ich die variable $mahlzeiten hier rein?
        }
        ?>

          
        Ehrlich gesagt, verstehe ich nicht so ganz was Du willst.  
        Einfache Antwort: gar nicht. Klassenbasierte OOP arbeitet anders.  
          
        Nächste Antwort:  
        übergib den Variableninhalt bei der Erzeugung der Instanz im Konstruktor.  
        Hast Du Deinen Angaben zufolge bereits erfolglos versucht. Wir kennen Deine Versuche natürlich nicht.  
          
        Noch eine Möglichkeit:  
        Setze per Setter die entsprechende Eigenschaft auf den gewünschten Wert. Hast Du Deinen Angaben zufolge auch bereits versucht.  
          
        Möglicherweise hast Du ein Verständnisproblem. Das Setzen einer Eigenschaft erfolgt nicht bei der Klassendefinition, sondern dann, wenn man ein Objekt nutzt, d.h. erzeugt.  
          
          
        Freundliche Grüße  
          
        Vinzenz