Variablen in Klasse bringen

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

  • Variablen in Klasse bringen

    Hallo,

    über ein Datei-Include binde ich die DB-Zugangsdaten in die jeweiligen Seiten ein, wie z.B. $server, $user, $db, $pw.
    Jetzt möchte ich diese Variablen in die abgeleitete Klasse DB_db bringen, der nachfolgenden Form:


    include("../db_zugang.php");

    class DB_db extends DB_Sql {
    var $Host = $server;
    var $Database = $db;
    var $User = $user;
    var $Password = $pw;
    }

    ein Global-Setzen dieser Variablen innerhalb der Klasse brachte nichts.
    In den bisherigen Beiträgen, habe ich nichts gefunden, was mich weiterbrachte. Vielleicht kann mir hier jemand einen Tip geben.

  • #2
    zunächst fehlt in DB_db der konstruktor ... und von der einen auf die andere klasse kannst du zB methoden so aufrufen:
    PHP Code:
    parent::methodeDerMutterClass($var1$var2, ...);
    // oder
    $this->methodeDerMutterClass($var1$var2, ...); 
    mehr dazu findest du hier: http://www.php.net/manual/de/language.oop.php
    EDIT:
    allerdings stekllt sich die frage, warum du diesen weg wählst
    Kissolino.com

    Comment


    • #3
      Hallo,

      der Konstruktor ist doch in der Mutterklasse DB_Sql und wird durch die erweiterte Klass DB_db 'vererbt'.

      Aber was ich nun gemacht habe ist: in der Mutterklasse DB_Sql ist die
      PHP Code:
      function connect($Database ""$Host ""$User ""$Password "") { 
      dieser übergebe ich in der erweiterten Klasse DB_db direkt die Variablen,
      PHP Code:
      function connect($Database "$db"$Host "$server"$User "$user"$Password "$pw") { 
      was nun auch funktioniert. Was mich hier nun wundert ist, daß ich die Variablen, welche über include("db_zugang.php") außerhalb der Klasse definiere, nicht mehr explizit in der Klasse selber global oder zumindest vorab über var $server usw. definieren muß.

      Ich habe diesen Weg gewählt, da in dieser local.inc von phplib sämtliche lokalen Gegebenheiten definiert werden, also in einer Datei.

      Comment


      • #4
        Korrektur, so kanns natürlich nicht gehen, habe versehentlich die alte Datei mit den Konstanten wieder hochgeladen und habe mich etwas zufrüh gefreut und nichts erreicht.

        Jedoch mit Hilfe des Konstruktors und global setzen innerhalb des Konstruktors geht es nun. Hier der Code, falls jemand dasselbe Problem mal hat:

        PHP Code:

        include("db_zugang.php");

        class 
        DB_db extends DB_Sql {

          function 
        DB_db() {   // wird automatisch aufgerufen, initialisiert Variablen

            
        global $db$server$user$pw;

            
        $this->Database $db;
            
        $this->Host $server;
            
        $this->User $user;
            
        $this->Password $pw;
          }

        Comment

        Working...
        X