Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] auf eigenschaft der Elternklasse zugreifen

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

  • [Erledigt] auf eigenschaft der Elternklasse zugreifen

    Hey
    Ich habe eine elternklasse : speaktoaddon
    PHP-Code:
    class speaktoaddon
    {
        var 
    $name// Name des Addons

    und nun möchte ich mit der Kindklasse : getfunction
    einen Pfad aufrufen, indem ich die Eigenschaft (name) benutze

    PHP-Code:
    class getfunction extends speaktoaddon
    {
         public function 
    getfunction()
          {
        
            
    $info file("addons/".$this->name."/".$this->name.".php");
            foreach (
    $info as $value)  {
                echo 
    $value.' <br>';
            }
         }

    Klappt leider nicht :/
    Als Fehlermeldung sagt er halt das der Pfad "addons//.php nicht vorhanden ist, also genau die namen dinger fehlen :/

    Bitte um Hilfe

    LG


  • #2
    Steht denn etwas in dem Attribut?

    Du arbeitest im Übrigen noch mit Elementen von PHP 4.
    hallophp.de

    Kommentar


    • #3
      PHP-Code:
      <?php
      class speaktoaddon
      {
          protected 
      $name "undefined"// Name des Addons
      }

      class 
      getfunction extends speaktoaddon
      {
           public function 
      __construct()
           {
              
      $filename "addons/".$this->name."/".$this->name.".php";
              if (!
      is_file($filename)) {
                throw new 
      Exception("file [$filename] not found");
              }
              
      $info file($filename);
              echo 
      implode("<br />"$info);
           }
      }  
      ?>
      Ich hab dein Skript mal PHP5-ifiziert.
      "Mein Name ist Lohse, ich kaufe hier ein."

      Kommentar


      • #4
        geht immer noch nicht.
        Also ich habe $name nicht in der Klasse definiert, sondern es wird ihr ein Wert von einem skript von außerhalb gegeben.
        also ich hab in include.php
        PHP-Code:
        $speaktoaddon = new speaktoaddon;
        $speaktoaddon->name 'beispiel'
        und später darunter habe ich:
        PHP-Code:
        $getfunction = new getfunction
        und eigentlich müsste er doch den namen dann übernehmen oder nicht?

        Kommentar


        • #5
          Nö, das sind zwei unterschiedliche Objekte.
          hallophp.de

          Kommentar


          • #6
            aber habe ich es nicht mit extends als kindklasse markiert? ^^
            ich mach oop noch net soo lange :P

            Kommentar


            • #7
              Schon, aber du erzeugst zuerst ein Objekt der Klasse speaktoaddon und anschließend ein Objekt der Klasse getfunction. Beide Objekte haben ihr eigenes Attribut name.
              ich mach oop noch net soo lange :P
              Dann solltest du noch ein bisschen in aktuellen Tutorials blättern und etwas vorsichtiger sein, was die Einschätzung deiner PHP-Kenntnisse angeht.
              hallophp.de

              Kommentar


              • #8
                ok, und wie kann ich nun auf die eigenschaft von speaktoaddon zugreifen von getfunction aus?

                Kommentar


                • #9
                  http://www.peterkropff.de/site/php/vererbung.htm da hab ich das her, dort meint er das :P

                  Kommentar


                  • #10
                    Merke Dir: Vererbt wird nur der Bauplan des Objekts, also alle Methoden, die enthaltenen Properties und vorbelegte(!) Werte. Alles was nach Instanziierung eines Objektes geschieht, vererbt sich natürlich nicht an ein anderes Objekt. Das musst Du dann auslesen und dem anderen zuweisen.
                    --
                    ^^ O.O
                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      Ok jetzt weiß ich bescheid, danke

                      Kommentar

                      Lädt...
                      X