Wie verwende ich in PHP eine Klasse in einer anderen Klasse?

Antwort vom

**Du verwendest eine Klasse in einer anderen PHP-Klasse, indem du in der äußeren Klasse ein Objekt der inneren Klasse erzeugst oder per Konstruktor übergibst – genau das ist saubere Zusammenarbeit zwischen Klassen.** ## Direkte Verwendung Wenn eine Klasse eine andere nur intern braucht, kannst du sie direkt instanziieren: ```php class Logger { public function log(string $text): void { echo $text; } } class UserService { private Logger $logger; public function __construct() { $this->logger = new Logger(); } public function createUser(string $name): void { $this->logger->log("Benutzer erstellt: " . $name); } } ``` Hier nutzt `UserService` die Klasse `Logger` innerhalb der eigenen Klasse. ## Besser in der Praxis: per Konstruktor übergeben Das ist meist die bessere Lösung, weil deine Klasse dadurch flexibler und testbarer wird: ```php class Logger { public function log(string $text): void { echo $text; } } class UserService { private Logger $logger; public function __construct(Logger $logger) { $this->logger = $logger; } public function createUser(string $name): void { $this->logger->log("Benutzer erstellt: " . $name); } } $logger = new Logger(); $userService = new UserService($logger); $userService->createUser("Max"); ``` ## Der wichtige Unterschied `new Logger()` **in** der Klasse ist schnell geschrieben, aber unflexibel. `Logger $logger` **im Konstruktor** ist sauberer, weil du später auch eine andere Logger-Klasse oder ein Mock im Test verwenden kannst. ## Falls du „Klasse in Klasse“ wörtlich meinst PHP kennt keine echten verschachtelten Klassen wie manche andere Sprachen. Du definierst Klassen also normalerweise **nicht innerhalb einer anderen Klasse**, sondern **getrennt** und lässt sie dann zusammenarbeiten. Kurz gesagt: **Eine PHP-Klasse enthält normalerweise kein Klassen-Statement einer zweiten Klasse, sondern ein Objekt dieser Klasse als Eigenschaft.**

Kategorie: Technik Tags: PHP Klasse Objekt

Verwandte Fragen

Wie erstelle ich mit PHP 8.2 eine PDF/A-3-Datei?

Mit PHP 8.2 erstellst du eine PDF/A-3-Datei am praktikabelsten mit TCPDF; mPDF kann zwar PDF/A, ist dafür aber deutlich weniger klar dokumentiert und selbst die eigene Doku bezeichnet die Bibliot...