PHP5 - Vererbung: Aufrufen einer Methode der Oberklasse



  • Hi Community!

    Oberklasse.php5

    <?php
    abstract class Oberklasse
    {
    	function __contruct($id, $table, $fields)
    	{
    		echo "Konstruktor<br/>";
    	}
    
    	function test()
    	{
    		echo "Test<br/>";
    	}
    }
    ?>
    

    Unterklasse.php5

    <?php
    include("Oberklasse.php5");
    
    class Unterklasse extends Oberklasse
    {
    	public function __contruct($id = -1)
    	{
    		$fields = array("reg_timestamp", "reg_ip", "last_login", "passwd", "nachname", "vorname", "strasse_nr", "plz", "wohnort", "liefer_strasse_nr", "liefer_plz", "liefer_ort", "email", "telefon", "zahlungsart", "kommentar");
    		parent::__contruct($id, "kunden", $fields);
    	}
    
    	public function get($attribute)
    	{
    		parent::test();
    	}
    }
    ?>
    

    test.php5

    [...]
    <?php
    	include($basedir . "includes/Unterklasse.php5");
    
    	$cur = new Unterklasse(1);
    	$cur->get("vorname");
    ?>
    [...]
    

    Ich erhalte als Ausgabe immer:

    Fatal error: Call to undefined method Oberklasse::test() in /pfad/includes/Unterklasse.php5 on line 14

    Kann mir wer sagen, wo der Fehler liegt?

    Vielen Dank im Voraus!
    Konstantin



  • Hat keiner eine Ahnung voran das liegen könnte?

    Hmm ... Dann werd ich es vielleicht noch mal in einem reinen PHP-Forum versuchen!?

    Falls doch noch einer eine Idee hat, dann lasst es mich wissen. Wenn ich weiß woran es liegt, werde ich das hier schreiben.

    Danke.


  • Mod

    welche php version?
    bei 5.0.3 klappt es bei mir.

    der code ansich ist nämlich korrekt.

    vielleicht wird auch eine falsche "Oberklasse" inkludiert?
    check das halt mal per get_class_methods()



  • Vielen Dank!

    Ich war einfach zu doof, richtig zu inkludieren. In Unterklasse.php5 hätte es include/Oberklasse.php5 heißen müssen!

    Und ganz nebenbei habe ich auch noch das s bei construct vergessen!

    Konstantin


Anmelden zum Antworten