Wie man eine Klasse in einer anderen Klasse in PHP zu erweitern

September 12

PHP-Klassen definieren Objekte und Funktionen für diese Objekte kapseln. Wenn Sie eine PHP-Anwendung entwickeln, können Sie Zeit sparen, mit einer PHP-Klasse, die bereits für Aufgaben, die Sie in der Anwendung ausführen. Weist auf eine PHP-Klasse, die Sie verwenden möchten die meisten, aber nicht alle, die Funktionalität benötigen Sie für ein Objekt, können die PHP-Klasse erweitern, verwenden Sie die Funktion, die bereits durch die Klasse definiert und zusätzliche Funktionen hinzufügen, um die erweiterte Version der Klasse.

Anweisungen

1 Zählen Sie die PHP-Klasse, die Sie erweitern möchten. Geben Sie beispielsweise Folgendes ein, um eine PHP-Klasse einfügen, die weist einen Sitz und enthält eine Funktion zum Anzeigen des aktuell zugewiesenen Sitzes.

<? Php

Klasse Sitz {}

protected $assigned = "";

public function __construct() {

$this->assigned = get_next_assigned_seat();

}

public function show() {

echo "&lt;p>The current assigned seat is " . $this->assigned . "&lt;/p>";

}

}

2 Erstellen Sie eine neue PHP-Klasse, die ursprüngliche Klasse erweitert. Zusätzliche Funktionen der erweiterten Klasse--zum Beispiel die Möglichkeit, einen Sitzplatz zu überschreiben. Typ:

Klasse SpecialSeat erweitert Seat {}

private $approval_code = "abc123";

public function override($approval, $newseat) {

if ($approval == $approval_code) {

$this->assigned = override_assigned_seat($newseat);

return true;

}

return false;

}

}

3 Fügen Sie den größten Teil des Programms, der bekommt eines zugewiesenen Platz mithilfe der Funktionen der ursprünglichen Klasse, überschreibt der Sitzplatz mit der Funktionalität, die mit der erweiterten Klasse hinzugefügt und zeigt den Sitzplatz mit der Funktionalität von der ursprünglichen Klasse ein. Geben Sie beispielsweise:

$seat = neue SpecialSeat();

$seat -> show();

Wenn ($seat -> Außerkraftsetzung ("abc123", "F1"))

echo "&lt;p>Seat overridden!&lt;/p>";

sonst

echo "&lt;p>Seat override failed!&lt;/p>";

$seat -> show();

? >