Objekte als Rückgabe

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
 
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...?
 
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:
PHP:
<?php
    class Tank
    {
        protected $fuellmenge;

        public function setFuellmenge($menge)
        {
            $this->fuellmenge = $menge;
        }

        public function getFuellmenge()
        {
            return $this->fuellmenge;
        }
    }

    class Auto
    {
        public function getTankMaxInput()
        {
            return new Tank()->getFuellMenge();
        }

    }
?>
Beispiel mag vielleicht keinen Sinn ergeben :D, dient auch nur zur Veranschaulichung.

Ich hoffe es ist verständlich. :)

Liebe Grüße
Halfbax
 
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:
PHP:
$return = array();
$erg = $stmt->fetchAll(PDO::FETCH_ASSOC);
           
           foreach ($erg AS $customer) {
               $assistant_variable = new Customer(
                   $customer['property_1'],
                   $customer['property_2'],
                   ...
               );
               $return[] = $assistant_variable;
           }
           
           return $return;

Viele Grüße
schiese
 
Zuletzt bearbeitet:
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
 
Zurück