1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Name der Kindklasse in der Elternklasse verwenden

Dieses Thema im Forum "PHP" wurde erstellt von kerstel, 6. August 2008.

  1. kerstel

    kerstel Erfahrenes Mitglied

    Hallo,

    ich habe folgende Situation:

    PHP:
    1.  
    2. class Parent
    3. {
    4.   function getName()
    5.   {
    6.  
    7.   }
    8. }
    9. class Child extends Parent
    10. {
    11.   funcion __construct()
    12.   {
    13.     echo $this->getName();
    14.   }
    15. }
    16.  
    wie kann ich nun mit der Funktion getName der Elternklasse, den Namen der Kindklasse (in dem Fall "Child") zurückgeben? Klar wenn ich der Funktion getName als Parameter die Funktion get_class() mitgebe, aber automatisch wäre für weitere Vererbungen einfacher :)

    Noch ein andere Frage am Rande:
    Wenn Kindklasse und Elternklasse einen Konstruktor haben, werden diese seperat ausgeführt, oder überschreibt der Konstruktor der Kindklasse den der Elternklasse? kann ich dann vom Eltern Konstruktor etwas an den Kindkonstruktor übergeben?

    Danke und Gruß
    Kerstel
  2. Flex

    Flex (aka Felix Jacobi)

    Wenn du die Elternklasse initialisierst, hat sie keine Ahnung, dass es irgendwo eine Kindsklasse gibt.

    Aber dein Beispiel wäre so möglich:

    Code (PHP):
    1. <?php
    2. class Vater
    3. {
    4.   public function getName()
    5.   {
    6.     echo __CLASS__;
    7.   }
    8. }
    9.  
    10. class Kind extends Vater
    11. {
    12.   public function __construct()
    13.   {
    14.     echo parent::getName();
    15.   }
    16. }  
    17.  
    18. $child = new Kind;
    19. ?>
    Wobei der Sinn und Zweck sich nicht ganz ergibt, finde ich.

    Grundsätzlich wird bei der Vererbung, der Konstruktor der Kindklasse ausgeführt, auf den Konstruktor der Elternklasse ist per parent::__construct() aber Zugriff möglich.
  3. kerstel

    kerstel Erfahrenes Mitglied

    sinn ist folgender: für die kindklasse sollen erweiterungen programmiert werden können, diese sollen im verzeichnis liegen, das genau so heisst wie die kindklasse. Also wenn die Kindeklasse ABCDE heisst, liegen die erweiterungen im Verzeichnis ABCDE. Da es mehrere Kindklassen gibt, wollte ich das über eine andere Klasse steuern, also wo liegt die erweiterung usw.

    Viele Grüße und Danke
    Kerstel

Diese Seite empfehlen