Variablen in Klasse bringen

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

  • 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

    Kommentar


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

      Kommentar


      • #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;
          }

        Kommentar

        Lädt...
        X