Ankündigung

Einklappen
Keine Ankündigung bisher.

OOP: Metodenaufruf über Eigenschaft

Einklappen

Neue Werbung 2019

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

  • OOP: Metodenaufruf über Eigenschaft

    Hallo,
    ich bin im Moment dabei eine Klasse für die Auswertung von Formularen, in UML zu konstruieren.
    Nun möchte ich alle $_POST / $_GET (je nach Requestart), welche ein gewisses Präfix enthalten, einlesen. Diese sollen, zur besseren Übersicht, im Aufruf angeben werden.
    Beispiel:
    PHP-Code:
    //Theoretisch:
    $form->postvariabel->funktion();
    //Praktischer Aufruf:
    $form->title->isRequired(); 
    Nun suche ich aber ein Lösung, wie ich die Variablen mit in den Aufruf (und in die Funktion) einbeziehen kann.

    In PHP umsetzbar müsste es sein, da auch SimpelXML und MySqli diese verwenden.
    Beispiel:
    PHP-Code:
    //SimpelXML
    $book simplexml_load_file("books.xml");
    $titleArr $book->book[0]->attributes(); 
    Gruß

    laurentius


  • #2
    Du suchst vermutlich __get: http://php.net/manual/en/language.oop5.overloading.php

    Die Rückgabe dieser Funktionen müsstest du gegebenenfalls noch in einem Objekt „wrappen“, das dann die von dir gewünschten Methoden bereitstellt. Da könnte vielleicht noch die magische Methode __call interessant sein.

    Kommentar


    • #3
      Zitat von laurentius Beitrag anzeigen
      In PHP umsetzbar müsste es sein, da auch SimpelXML und MySqli diese verwenden.
      Es gibt auch noch die Möglichkeit, einen Array zur Laufzeit nach object zu casten:
      PHP-Code:
      $array = array('intro' => 'Hello world!');

      $obj = (object) $array;

      var_dump($obj); 
      ->
      Code:
      object(stdClass)#1 (1) {
        ["intro"]=>
        string(12) "Hello world!"
      }
      (Soll kein Lösungsvorschlag sein, sondern nur zur Info)

      Kommentar


      • #4
        Sowas setzt du mit Entity-Klassen um die im Objekt, mit dem auf das Property zugegriffen wird, instanziiert werden.

        Bei SimpleXML ist die Entity Klasse SimpleXMLElement.
        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

        Kommentar

        Lädt...
        X