Variable im Methodenaufruf

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

  • Variable im Methodenaufruf

    Hallo liebe Community,
    sorry das mein erster Beitrag gleich eine Frage ist, aber ich steh gerade total auf dem Schlauch.
    Bitte verzeiht meine Unwissenheit, ich bin derzeit dabei PHP zu lernen.
    Also jetzt zu meiner Frage:

    Ich möchte eine Methode einer von mir angelegten Klasse in einem externen PHP script aufrufen und das anhand eines variablen Methodennamens.

    PHP-Code:
    if(isset($_POST['aendern'])){
        include_once 
    "klassen/test_klasse.php";
        
    $objekt_wahl $_POST['objekt_wahl'];    
        
    $objekt_wahl->test_anwenden();        

    Wenn ich die Methode wie gewohnt aufrufe funktioniert es, nur wenn ich denn Namen mittels der Variable $objekt_wahl angeben möchte gibt er mir folgende Fehlermeldung:
    Fatal error: Call to a member function test_anwenden() on a non-object

  • #2
    Dir fehlt wohl ein $-Zeichen …

    (Dass das Vorgehen von der Sicherheit her seine Fallstricke hat, solltest du dir klar machen.)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      $objekt_wahl enthält einen String und kein Objekt. Außerdem seh ich in deinem Beispiel nirgendwo, dass überhaupt ein Objekt erzeugt wird.

      Kommentar


      • #4
        @h3ll,

        Die Klasse wird ja auch über den include befehl eingebunden:
        PHP-Code:
        class test{
            
            var 
        $text;
            
            public function 
        test_anwenden(){
                echo 
        "Das ist ein ";
                echo 
        $this->text;
            }
        }

        $test_01 = new test;
        $test_01->text "Test";

        $test_02 = new test;
        $test_02->text "Test2"
        Aber du hast Recht es wird daran liegen das es ein String ist, gibt es eine Möglichkeit diesen umzuwandeln ?



        @wahsaga
        das "$" wird per post direkt mit übermittelt je nach Eingabe kommt entweder $test_01 oder $test_02 an

        Ich weiß das ergibt keinen Sinn. Das ganze dient nur zum Test ob es überhaupt möglich ist einen Methodenaufruf mittels einer Variable dynamisch zu gestalten.

        Kommentar


        • #5
          Zitat von Phil90 Beitrag anzeigen
          Die Klasse wird ja auch über den include befehl eingebunden
          Die Klasse, aber hoffentlich doch kein Objekt! Ansonsten machst du was falsch. 1 Klasse = 1 PHP-Datei, und sonst nichts. Da darf nichts anderes drin stehen und schon gar kein Objekt erzeugt werden.

          "var" ist übrigens veraltet. Verwende private, protected oder public.

          Kommentar

          Lädt...
          X