Typdeklarationen in PHP bieten zur Laufzeit Typprüfungen für Funktionsargumente, Rückgabewerte und Klasseneigenschaften.
Bei Funktionen kannst du einen void-Rückgabetyp angeben, um anzuzeigen, dass die Funktion keinen Wert zurückgibt.
Deklarierte Typen dienen außerdem als Laufzeitprüfungen dafür, dass Funktionen einen einigermaßen passend typisierten Wert zurückgeben.
<?php
class Driver
{
private int $serial_number;
public function setSerialNumber(int $number): void
{
$this->serial_number = $number;
}
public function getSerialNumber(): int
{
return $this->serial_number;
}
}
$driver = new Driver();
$driver->setSerialNumber("Version 1b"); // This will throw a TypeError
Wenn ein Funktionsargument, ein Rückgabewert oder eine Klasseneigenschaft mehr als einen Typ haben kann, kann ein Union-Typ deklariert werden.
<?php
class IdentityCard
{
private int|null $id = null;
public function assign(int|float $id): void
{
$this->id = intval($id);
}
}
$card = new IdentityCard();
$card->assign(5.0);
Beim Arbeiten mit Code können wir manchmal keinen Typ angeben.
Seit PHP 8.0 gibt es einen Notausgangstyp namens mixed.
Mixed entspricht einem Union-Typ aus object|resource|array|string|float|int|bool|null.
Du arbeitest seit einer Weile im Stadtbüro und hast dir eine Reihe von Tools gebaut, die deine tägliche Arbeit beschleunigen, zum Beispiel das Ausfüllen von Formularen.
Jetzt bekommst du eine neue Kollegin oder einen neuen Kollegen, und dir ist aufgefallen, dass deine Tools vielleicht nicht selbsterklärend sind. In deinem Büro gibt es viele merkwürdige Konventionen, zum Beispiel Formulare immer in Großbuchstaben auszufüllen und keine Felder leer zu lassen.
Als ersten Schritt beschließt du, PHP-Typdeklarationen hinzuzufügen. So können sich neue Kolleginnen und Kollegen schnell zurechtfinden und deine Tools direkt nutzen.
Address
Füge für jede deklarierte Eigenschaft der Klasse Address eine Typdeklaration hinzu.
Jede Eigenschaft der Klasse wird als String deklariert.
Füge der Methode blanks in der Klasse Form eine Parametertypdeklaration und eine Rückgabetypdeklaration hinzu.
Die Methode nimmt eine Ganzzahl als Länge entgegen und gibt eine String-Darstellung der leeren Zeile zurück.
Füge der Methode letters in der Klasse Form eine Parametertypdeklaration und eine Rückgabetypdeklaration hinzu.
Die Methode nimmt einen String entgegen, der Wörter darstellt, und gibt ein Array mit Buchstaben zurück.
Füge der Methode checkLength in der Klasse Form Parametertypdeklarationen und eine Rückgabetypdeklaration hinzu.
Die Methode nimmt ein Wort als String und eine maximale Länge als Ganzzahl entgegen und gibt einen Wert zurück, der wahr oder falsch ist.
Füge der Methode formatAddress in der Klasse Form eine Parametertypdeklaration unter Verwendung der zuvor aktualisierten Klasse Address sowie eine Rückgabetypdeklaration hinzu.
Die Methode nimmt eine Address entgegen und gibt einen formatierten String zurück.
Melde dich bei Exercism an, um PHP mit 11 Konzepte122 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.