Les déclarations de type en PHP fournissent des assertions de type à l'exécution pour les arguments de fonction, les valeurs de retour et les propriétés de classe.
Sur les fonctions, on peut ajouter un type de retour void pour indiquer qu'aucune valeur n'est renvoyée par la fonction.
Les types déclarés servent aussi d'assertions à l'exécution, garantissant que les fonctions renvoient une réponse au type cohérent.
<?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
Si un argument de fonction, une valeur de retour ou une propriété de classe peut être de plusieurs types, on peut déclarer une union de types.
<?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);
Lorsqu'on travaille avec du code, il n'est pas toujours possible de spécifier un type.
À partir de PHP 8.0, un type d'échappement nommé mixed est fourni.
Mixed équivaut à une union de types object|resource|array|string|float|int|bool|null.
Tu travailles au bureau municipal depuis un moment, et tu as développé une série d'outils qui accélèrent ton travail quotidien, par exemple pour remplir des formulaires.
Un nouveau collègue vient d'arriver, et tu t'es rendu compte que tes outils n'étaient peut-être pas très explicites. Il y a beaucoup de conventions étranges dans ton bureau, comme le fait de toujours remplir les formulaires en majuscules et d'éviter de laisser des champs vides.
Pour commencer, tu décides d'ajouter des déclarations de type PHP pour que ton nouveau collègue puisse s'y mettre tout de suite et commencer à utiliser tes outils plus facilement.
Address
Ajoute une déclaration de type à chacune des propriétés déclarées de la classe Address.
Chaque propriété de classe doit être déclarée comme une string.
Ajoute une déclaration de type de paramètre et une déclaration de type de retour à la méthode blanks de la classe Form.
La méthode doit prendre en paramètre un entier correspondant à la longueur, et renvoyer une string qui représente la ligne vide.
Ajoute une déclaration de type de paramètre et une déclaration de type de retour à la méthode letters de la classe Form.
La méthode doit prendre en paramètre une string représentant des mots, et renvoyer un tableau de lettres.
Ajoute des déclarations de type de paramètre et une déclaration de type de retour à la méthode checkLength de la classe Form.
La méthode doit prendre en paramètre une string (un mot) et un entier correspondant à la longueur maximale, et renvoyer une valeur vrai ou faux.
Ajoute une déclaration de type de paramètre, en utilisant la classe Address mise à jour précédemment, ainsi qu'une déclaration de type de retour à la méthode formatAddress de la classe Form.
La méthode doit prendre en paramètre un Address et renvoyer une string formatée.
Inscris-toi sur Exercism pour apprendre et maîtriser PHP avec 11 concepts122 exercices, et un vrai mentorat humain, le tout gratuitement.