__FILE__ und Vererbung geht nicht

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

  • __FILE__ und Vererbung geht nicht

    Hallo liebe Forenteilnehmer,

    ich versuche gerade folgendes:


    PHP-Code:
    // vater.php
    class Vater {
        public function 
    action()
        {
            echo 
    __FILE__;
            
        }
    }

    // kind.php
    class Kind extends Vater {
        
    }

    $k = new Kind();
    $k->action();

    // Es wird vater.php ausgegeben 
    Was kann ich machen das bei action() kind.php ausgegeben wird, ohne die Methode neu zu definieren? D.h. einmal in der Oberklasse definiert, kann man den Dateinamen der Kindklasse bekommen.


    MFG

    phpaule

  • #2
    $_SERVER['php_self'] statt __FILE__ benutzen
    Slava
    bituniverse.com

    Kommentar


    • #3
      dann aber bloß nicht die kind.php includen.

      Kommentar


      • #4
        @Slava

        Das geht nicht, hab ich schon probiert. Da PHP_SELF immer die Datei ist die beim Aufruf angesprochen wird und in meinem Fall werden die Klassen includiert.

        Also würde dort nicht der Filename der Klasse stehen.

        @TobiaZ
        Aber das Kind ist das wichtigste, von dem will ich ja den Dateinamen

        Kommentar


        • #5
          Aber das Kind ist das wichtigste, von dem will ich ja den Dateinamen
          Ja, das sagtest du bereits.

          Machs wie in JAVA, die datei nach der Klasse benennen.

          Kommentar


          • #6
            Mach ich doch

            Das Problem eigentlich ist, ich brauch den Pfad zur Klasse, denn den brauche ich um eine andere Datei automatisch einzubinden.

            Kommentar


            • #7
              Über Reflection hab ichs auch grad mal probiert. Geht leider auch nicht.

              PHP-Code:
                  public function action()
                  {
                      
              $func = new ReflectionClass(__CLASS__);
                      echo 
              $func->getFileName();
                  } 

              Kommentar


              • #8
                get_class($this) sollte schon gehen. das ".php" musst dir halt dazufälschen.

                grüße
                axo

                Kommentar


                • #9
                  Axo na dann

                  Kommentar

                  Lädt...
                  X