Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] preg_replace Ergebnis als dynamischer Klassenname

Einklappen

Neue Werbung 2019

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

  • [Erledigt] preg_replace Ergebnis als dynamischer Klassenname

    Hallo,

    ich hoffe, dass ich hier mit meiner Frage richtig bin, da es am ende vielleicht einfach ein dummer Fehler von mir ist.

    PHP-Code:
    $this->template "{!pKlasse->funktion(\"Parameter\")}"

        
    $this->template preg_replace"/{!p(.*)->(.*)\((.*)\)}/"
                                                   
    $this->plugins['${1}']->{'${2}'}('${3}') ,
                                                   
    $this->template ); 
    Ich hätte gerne als Ergebnis den Rückgabewert von
    PHP-Code:
    Klasse->function("Paramter"
    Als Fehler erhalte ich:
    PHP-Code:
    Call to a member function ${2}() on a non-object
    Ich hoffe ihr könnt mir helfen .

    Gruß Tarek

  • #2
    da es am ende vielleicht einfach ein dummer Fehler von mir ist.
    Wenn ich das schon lese! Fortgeschritten?


    Das geht so allenfalls mit dem /e Parameter, aber das ist echt schlechter Stil. Wozu soll das gut sein?
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Das geht so nicht, weil der replace-Parameter als Ausdruck ausgewertet wird, bevor das Ersetzen überhaupt stattfindet.
      $this->plugins['${1}'] ist zu dem Zeitpunkt aber höchstvermutlich kein Objekt, also kannst du auch keine Methode davon aufrufen.

      Du suchst vermutlich preg_replace_callback, bzw. den Modifier e.
      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

      Kommentar


      • #4
        meinst du, dass
        $this->plugins['Klasse'] kein Objekt ist? Das ist es auf jedenfall. Der Aufruf $this->plugins['Klasse']->Methode("Parameter") funktioniert auch.

        Kommentar


        • #5
          Zitat von TAuel Beitrag anzeigen
          meinst du, dass
          $this->plugins['Klasse'] kein Objekt ist? Das ist es auf jedenfall.
          Nein, ich meine das $this->plugins['${1}'] kein Objekt ist.

          Du möchtest den ersten Satz meiner vorherigen Antwort noch mal lesen.
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar


          • #6
            Danke für dein Hilfe mit preg_replace_callback hat es super geklappt

            Gehören solche Fragen in den fortgeschrittenen Bereich?

            Kommentar


            • #7
              Nicht mit dem Einführungssatz. Warum man so ein Konstrukt basteln sollst hast Du auch nicht begründet. Also - nein.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Zitat von TAuel Beitrag anzeigen
                Danke für dein Hilfe mit preg_replace_callback hat es super geklappt

                Gehören solche Fragen in den fortgeschrittenen Bereich?
                Wie du an Nikoschs antwort sehen konntest... nein.

                edit.: ups 2 late
                "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

                Kommentar

                Lädt...
                X