Ergebnis 1 bis 5 von 5

Thema: Fatal error: Cannot inherit previously-inherited constant

  1. #1
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard Fatal error: Cannot inherit previously-inherited constant

    Hi,
    ich habe zu diesem Problem schon viele threads in Google gefunden, aber nichts hat mein Problem gelöst. In den diesen ist das Problem meist auf APC zurückzuführen, aber ich benutze hier Windoof zum entwicklen und die Windows-Binarys sind nciht in den aktuellen versionen erhälrlich. Im gegensatz zu den meisten Problemen ist meins eher simpel. Ich habe ein Interface Page:
    PHP-Code:
    <?php
    interface Page {
        const 
    NAME=null;
        
    // weitere Elemente
    }
    // das = null nur, weil PHP da einen Wert wollte
    ?>
    und eine Klasse, die das Interface vollständig implementiert.
    PHP-Code:
    class Page_unavailable implements Page {
        const 
    NAME="Nicht-Verfügbar-Seite";
        
    // weitere implementierung

    und das ergebnis ist eine Fehlermeldung:
    Code:
    Fatal error:  Cannot inherit previously-inherited constant NAME from interface Page in unavailable.php on line 2
    Hat jmd. eine Idee? Seit wann ist es ein problem Konstanten zu vererben? Auf statische Variablen kann ich nicht ausweichen, die mag PHP noch weniger...
    Code:
    Fatal error:  Interfaces may not include member variables (...)
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  2. #2
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Fatal error: Cannot inherit previously-inherited constant

    huhu, Tobse, Konstanten sind => konstant == nicht veränderlich

  3. #3
    Kaiser(in)
    Themenstarter

    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: Fatal error: Cannot inherit previously-inherited constant

    Ich will in der Klasse Informationen speichern, auf die ich zugreiffen kann, ohne sie instatiieren zu müssen - statische variablen will PHP nicht und Konstanten auch nicht.
    Sind Konstante nicht Konstant in ihrer Klasse? Ein Interface ist doch keine Klasse, oder?
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  4. #4
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Fatal error: Cannot inherit previously-inherited constant

    Ein Interface ist die Schablone für einen Typ (=Klasse). Wenn die Schablone eine Konstante vorschreibt, dann muss jede Implementation diese Konstante, und damit auch mit dem im Interface definierten Wert, haben.
    Generell sind Konstanten aber die Ausnahme, da in Interfaces keine Membervariablen erlaubt sind, da diese immer konkret sind.
    Was du ab php 5.3 aber machen kannst, sind statische Funktionen. Wenn du also bei Klassen immer sicher sein willst, dass sie eine bestimmte Info lieferen können ohne instanziert zu werden, verpass dem Interface eine statische Funktion, welche diese Werte dann liefert.
    Oder mach ne abstract-class und vererbe, da kannste auch normale statische Membervariablen vergeben.

  5. #5
    Kaiser(in)
    Themenstarter

    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: Fatal error: Cannot inherit previously-inherited constant

    Ok, dann werd ich wohl auf die Statischen Funktionen zurückgreiffen, für meine Zweck ist eine abstakte klasse semantisch unpassend. In meinem Java-Buch war das beispiel mit vererbung anhand von Tieren
    Code:
    public abtract class Tier {
        public void fresen() {
        }
        public void schlafen(int stunden) {
        }
    }
    und
    public class Hund extends Tier {
        public fresen() {
           // "Fressen" ausgeben
        }
        public schlafen(int stunden) {
          // iwas mit Thread.sleep();
        }
        public void bellen(int wieOft) {
          // x-mal "wau" ausgeben
        }
    }
    Daran stört mich aber, dass abstrakte Klassen ja nicht beschreiben sollen, wie Objekte aufgebaut sind, sondern eher Grundfunktionen bereitstellen, die aber im ganzen nicht ausreichebn, ein Objekt ihres Typs zu nutzen. Man kann ja nicht einfach irgendein Tier auf den Heap setzten.
    Trotzdem danke
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

Ähnliche Themen

  1. Fatal error: Can't use function return value in write context
    Von tomcrafter im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 07.06.2010, 11:59
  2. Arcade mod geupdatet = fatal error
    Von Pharel im Forum Webanwendungen - Webapplikationen
    Antworten: 4
    Letzter Beitrag: 15.06.2009, 07:56
  3. Brauche Hilfe :( : fatal error C1083: Cannot open include
    Von im Forum Forum für alle anderen Programmiersprachen
    Antworten: 4
    Letzter Beitrag: 25.11.2007, 10:18
  4. Fatal error: Allowed memory size of 10485760 bytes exhausted
    Von Riester-Rente im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 12.06.2007, 23:57
  5. PHP-Nuke Fatal Error
    Von Joop im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 13.09.2005, 15:56

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •