Php type hinting nicht immer zusammen mit interfaces und abstrakten Klassen?

Ich denke, es wird viel leichter sein, zu sehen, dass das problem in ein code-Beispiel schreiben die Frage in den ersten Platz. Hier ist mein php code:

<?php

interface AnInterface
{
        public function method();
}    

class AClass implements AnInterface
{
        public function method()
        {
                echo __METHOD__;
        }
}    

abstract class AnAbstractClass
{
        abstract public function method( AnInterface $Object );
}

class ConcreteClass extends AnAbstractClass
{
        public function method( AClass $Object )
        {
                $Object->method();
        }
}

$Object1 = new ConcreteClass();
$Object2 = new AClass();

$Object1->method( $Object2 );

Dem obigen code die folgende Fehlermeldung verursacht:

Fatal error: Declaration of ConcreteClass::Methode() muss kompatibel mit der AnAbstractClass::Methode()

Das problem ist, dass php nicht zu sein scheinen, erkennen die Unterschriften von AnAbstractClass::Methode und ConcreteClass::Methode als kompatibel. Mache ich etwas falsch? Danke!

  • Bitte, bitte kommen Sie in die Gewohnheit der Entsendung der Fehlermeldung, der code wird generiert. Posting-code ohne die Buchung der Ausgabe (oder Fehler) ist nutzlos.
InformationsquelleAutor Muc | 2010-12-30
Schreibe einen Kommentar