Konstanten durch Interfaces

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

  • Konstanten durch Interfaces

    Zuerst mal mein Ansatz: Ich möchte gerne ein Interface schreiben, in dem ich Konstanten definiere, die ich in anderen Klassen verwenden kann, dies habe ich wie folgt getan:

    PHP-Code:
    <?php
      
    interface iConstants{
        
    define("X""...")
       ...
      }
    ?>
    Dieses Interface sowie eine weitere Klasse möchte ich nun in einer Klasse verwenden. Die andere zu verwendende Klasse enthält u.a. eine Methode zur Verbindung zu einer Datenbank mit den Übergabeparametern $dbHost, $dbName, $user und $userPW. Die Werte dieser Parameter sind im Interface iConstants als Konstanten definiert.

    PHP-Code:
    <?php
      
    require_once("MySQLDBZugriff.php")
      require_once(
    "iConstants.php")

      class 
    TestKlasseDBZugriff implements iConstants{
        
    $dbZugriff = new MySQLDBZugriff();

        
    $dbzugriff->verbindungHerstellenDB_HOSTDB_NAMEUSERPASSWORD );

        
    $dbZugriff->verbindungTrennen();
      }
    ?>
    Das Problem ist nun, daß ich bei dem Versuch, TestKlasseDBZugriff auszuführen, immer eine Fehlermeldung folgenden Inhalts bekomme:

    Parse error: parse error, unexpected T_VARIABLE, expecting T_FUNCTION in d:\Inetpub\wwwroot\TestKlasseDBZugriff.php on line 7

    Line 7 ist dabei die Anweisung: $dbZugriff = new MySQLDBZugriff();

    Hat jemand eine Idee, warum diese Fehlermeldung auftritt. Und bei der Gelegenheit auch meine Frage, ob meine Grundherangehensweise richtig ist, also ob ich die im Interface definierten Konstanten auf diese Weise verwenden kann oder ob ich sie falsch referenziere.

    Danke schon mal und Gruß
    be water my friend ...

  • #2
    constants: Like superglobals, the scope of a constant is global. You can access constants anywhere in your script without regard to scope. For more information on scope, read the manual section on variable scope.

    Seit PHP 5 gibt es Klassenkonstanten, aber denen die definiert man anders. Siehe http://php.net/manual/en/language.oop5.constants.php

    Zum Fehler: Deine Fehlermeldung sagts schon: Es wird das Schlüsselwort function erwartet. Könntest auch noch paar Variablen definieren, aber Klassenvariablen wird ein var (ab PHP 5 private/protected/public) vorangestellt.

    Ich empfehle einen längeren Aufenthalt auf http://de2.php.net/manual/en/language.oop5.php.

    Kommentar


    • #3
      Edit: Danke für die schnelle Antwort, es sind nun einige Unklarheiten beseitigt, nicht zuletzt auch Dank der Kommentare unterhalb verschiedener Kapitel des Handbuches.
      Zuletzt geändert von god59; 03.11.2005, 09:02.
      be water my friend ...

      Kommentar

      Lädt...
      X