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:
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?..
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!