1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Objekte als Rückgabe

Dieses Thema im Forum "PHP" wurde erstellt von schiese, 14. Oktober 2016.

  1. schiese

    schiese Erfahrenes Mitglied

    Hallo,
    ich habe schon im Internet gesucht, aber keine Antwort auf meine Frage gefunden. Ich habe eine Klasse, in der ich verschiedene Methoden habe, die mir Daten zu Kunden zurückgeben. Jetzt ist es so, dass ich als Rückgabewert ein assoziatives Array ($stmt->fetchAll(PDO::FETCH_ASSOC)) habe. Ich hätte aber lieber eine Entität 'Kunde'. Das heißt, ich müsste in der Methode Objekte vom Typ 'Kunde' erzeugen können und diese dann in einem Array speichern. Ist die Erzeugung von Objekten einer anderen Klasse in einer Klassenmethode mit PHP irgendwie möglich?

    Viele Grüße
    schiese
     
  2. sheel

    sheel I love Asm Administrator

    Hi

    natürlich, ganz gleich wie es auch außerhalb von Klassenmethoden geht.
    Ich nehme an, die Klasse selber ist schon geschrieben?
    Ist das Problem die new-Anweisung, das Reinfüllen der Werte, oder...?
     
    schiese gefällt das.
  3. Halfbax

    Halfbax Erfahrenes Mitglied

    Wie @sheel bereits gesagt hat, es ist möglich!

    Einfach wie gehabt:
    1. Klasse importieren, sofern es in einer anderen Datei ausgekoppelt ist
    2. Klasse Erzeugen

    Beispiel:
    Code (PHP):
    1. <?php
    2.     class Tank
    3.     {
    4.         protected $fuellmenge;
    5.  
    6.         public function setFuellmenge($menge)
    7.         {
    8.             $this->fuellmenge = $menge;
    9.         }
    10.  
    11.         public function getFuellmenge()
    12.         {
    13.             return $this->fuellmenge;
    14.         }
    15.     }
    16.  
    17.     class Auto
    18.     {
    19.         public function getTankMaxInput()
    20.         {
    21.             return new Tank()->getFuellMenge();
    22.         }
    23.  
    24.     }
    25. ?>
    Beispiel mag vielleicht keinen Sinn ergeben :D, dient auch nur zur Veranschaulichung.

    Ich hoffe es ist verständlich. :)

    Liebe Grüße
    Halfbax
     
    schiese gefällt das.
  4. schiese

    schiese Erfahrenes Mitglied

    Hallo sheel,
    danke für deine Antwort. Das ist mir jetzt ein bißchen unangenehm. Ich habe vergessen, die entsprechende Datei einzubinden :oops: Es funktioniert jetzt genau so, wie ich es erwartet habe.

    Halfbax danke auch für deine Antwort. Ich habe es jetzt wie folgt gelöst:
    Code (PHP):
    1. $return = array();
    2. $erg = $stmt->fetchAll(PDO::FETCH_ASSOC);
    3.            
    4.            foreach ($erg AS $customer) {
    5.                $assistant_variable = new Customer(
    6.                    $customer['property_1'],
    7.                    $customer['property_2'],
    8.                    ...
    9.                );
    10.                $return[] = $assistant_variable;
    11.            }
    12.            
    13.            return $return;
    Viele Grüße
    schiese
     
    Zuletzt bearbeitet: 14. Oktober 2016
  5. Halfbax

    Halfbax Erfahrenes Mitglied

    Gerne. Ich hoffe ich lüge nun nicht, wenn ich behaupte, das wir beide gerne geholfen habe :). Wenn dein Problem damit abgeschlossen, so makiere Ihn bitte als gelöst.

    Schöne Grüße
     
    sheel gefällt das.
Die Seite wird geladen...