• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Statische Funktion innerhalb einer anderen Klasse aufrufen

Hallo!

Meine Klasse Kunden beinhaltet die statische funktion read_all_customers(), welche sich beim Client problemlos über Kunden::read_all_customers() aufrufen lässt, die Funktion gibt mir ein Array mit Objekten zurück, welche die wichtigsten Eigenschaften meiner Kunden beinhalten.

Nun würde ich die Funktion gerne innerhalb einer anderen Klasse aufrufen:

Code:
   class Mitarbeiter extends Personen {
      public function freigeschaltete_kunden() {
           $mysqli = MyDatabase();
           $meine_kunden = array();
           if ($obj_benutzer->admin == 1 || $obj_benutzer->zugriffsrecht_alle_kunden == 2) {
               $meine_kunden = Kunden::read_all_customers();
           }
          return $meine_kunden;
   }
}

Diesmal bleibt das Array $meine_kunden jedoch leer. Wo liegt mein Fehler?...
 
Werbung:
Ich weiß nun nicht wie du deine Klassen einbindest, ob mit ner autoload klasse oder composer. Aber du musst die Kunden klasse includen.
 
Werbung:
Natürlich könnte ich das Problem auch lösen, indem ich die statische Funktion read_all_customers() von der Kindklasse Kunden in die Elternklasse Personen verlege, dann könnte ich in der Klasse Mitarbeiter ebenso darauf zugreifen. Ich fand aber, dass das Auslesen der Kundendaten, welches sich strikt auf die Kunden bezieht, von daher in die Klasse Kunden gehört.
 
Du könntest auch eine getAllPerson Methode in die Personen klasse packen und anhand eines Parameters filtern ob es sich um Mitarbeiter, Kunden usw. handelt
 
:) Du hast vollkommen Recht!
Und da ich ein Skript schreibe, welches am Ende eine Auflistung der Kunden gefiltert nach bestimmten Kriterien ergeben soll, wäre es natürlich auch viel logischer auch dies allgemeiner zu fassen - so dass das gleiche Skript für eine Mitarbeiterliste oder was auch immer für Personen-Liste verwendet werden kann - statt diese wieder getrennt zu programmieren. Danke!
 
Werbung:
Wenn du mit Autoload / Composer und Namespaces verwendest, sollte das alles kein Problem sein.
 
Zurück
Oben