Klasse dynamisch erweitern

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

  • Klasse dynamisch erweitern

    Hi

    PHP-Code:
    class testclass {
      function 
    load() {
        
    load_functions($this);
      }

      function 
    output() {
        echo 
    $this->message();
      }
    }

    function 
    load_functions(&$testclass) {
      
    $testclass->message() = function() { return 'This is a message'; };
    }

    $test = new testclass();

    $test->load();

    $test->output();

    echo 
    $test->message(); 
    Ist sowas möglich?

    Genau so nicht, das ist mir auch klar, aber kann ich in eine Instanz einer Klasse zur Laufzeit weitere Methoden einfügen?
    Irgendwie?
    Ich denke, also bin ich. - Einige sind trotzdem...

  • #2
    Ähm, mal eine ganz blöde Frage......wozu soll das gut sein?

    Kommentar


    • #3
      Mhn, hast du dir mal dort die Kommentare angeschaut?

      create_function


      Ein paar scheinen zu deinem Thema dort zu sein. Aber lies selbst. Ich habs weder ausprobiert noch alles durchgelesen
      PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

      Kommentar


      • #4
        PHP-Code:
        $x create_function('$a'' return $a * 2;');
        echo 
        $x(5); // ergibt 10

        $this->create_function('$a'' return $a * 2;');
        $this->x(5); //geht nicht
        $this->$x(5); //geht nicht
        ${this->x}(5); //geht nicht
        ${this->$x}(5); //geht nicht 
        @schnoop
        Stell dir vor, du arbeitest z. B. mit preg_replace_callback in einer Funktion außerhalb einer Klasse (die Klasse wird als Referenz übergeben), und musst in der Callbackfunktion Zugriff auf die Klasse haben, wie würdest du das machen?

        Die Callbackfunktion liefert dir nur das, was der reguläre Ausdruck findet, du müsstest also als callback-Methode eine Methode der Klasse angeben und dieser dann beibringen, welche weitere Funktion sie aufrufen soll, wo sie sowohl das vom regulären Ausdruck gefundene als auch eine referenz auf sich selbst übergeben kann...
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          aber kann ich in eine Instanz einer Klasse zur Laufzeit weitere Methoden einfügen?
          Kannst du damit was anfangen:
          http://php3.de/manual/ja/ref.classkit.php
          ?
          Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

          Kommentar


          • #6
            Danker, aber leider nein, ist nicht einkompiliert, genausowenig wie runkit
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar

            Lädt...
            X