dynamischer methoden name

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

  • dynamischer methoden name

    Abend,

    geht das

    PHP-Code:

    $test 
    "add{$mParam2}";
    $this->$test($mParam1);

    //geht net:

    $this->add{$mParam2}($mParam1); 
    eigentlich noch eleganter, z.B. in einer Zeile? am besten auch ohne das man wieder eine Funktion als Methoden (Name) Factory, ala call_user_func(), oder Reflection braucht?!

  • #2
    Afaik nein, du solltest auf jeden Fall call_user_func_array dafür benutzen.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Re: dynamischer methoden name

      Original geschrieben von frank7l7
      geht das
      ...
      eigentlich noch eleganter, z.B. in einer Zeile?
      eine anweisung, ja:
      PHP-Code:
      $this->{'add'.$mParam2}($mParam1); 
      die beurteilung, ob's eleganter ist, überlasse ich dir
      Zuletzt geändert von 3DMax; 23.05.2008, 03:27.

      Kommentar


      • #4
        Lesbar ist es jedenfalls kaum noch.

        Kommentar


        • #5
          onemornerd bezieht sich bestimmt auf meine erste variante
          PHP-Code:
          $this->{"add{$mParam2}"}($mParam1); 
          sorry für's editieren - kann ja keiner ahnen, dass nochwer mitten in der nacht das liest

          ps: die zweite variante ist aber auch nicht viel besser

          Kommentar


          • #6
            tjoa ... so gehts doch danke! lesbarkeit find ich bei call_user_func auch nicht besser

            Kommentar


            • #7
              Ich würde das mit __get und __set lösen. Alles andere sieht eher nach Bastlermethode aus.

              Kommentar


              • #8
                Original geschrieben von h3ll
                Ich würde das mit __get und __set lösen. Alles andere sieht eher nach Bastlermethode aus.
                echt? dann gib' doch mal dein profibeispiel

                aber __call() war bei der problemstellung auch mein erster gedanke.
                aber selbst dann sieht's für mich wie ein kaputtes design aus - zumindest wüsste ich auf anhieb nicht, wo ich soetwas gebrauchen könnte.

                Kommentar


                • #9
                  dann gib' doch mal dein profibeispiel
                  gern
                  Wenn ich denn wüsste, wo es überhaupt hinführen soll...
                  Wir werden alle sterben

                  Kommentar

                  Lädt...
                  X