Maison >développement back-end >tutoriel php >Comment fonctionnent les types nullables dans PHP7 et au-delà ?

Comment fonctionnent les types nullables dans PHP7 et au-delà ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-06 09:59:14373parcourir

How Do Nullable Types Work in PHP7 and Beyond?

Types nullables en PHP7 : comprendre les points d'interrogation

PHP7 a introduit le concept de types nullables, signifié par le point d'interrogation (?) avant une déclaration de type (?string, ?int). Ces types permettent à une valeur d'être soit du type spécifié, soit null.

Paramètres

Lorsque vous marquez un paramètre comme nullable, cela signifie que la fonction peut accepter soit le type spécifié ou null comme argument. Par exemple :

public function (?string $parameter1, string $parameter2) {}

Dans ce cas, la fonction peut recevoir soit une chaîne, soit null pour $parameter1, mais $parameter2 doit être une chaîne.

Type de retour

Les types nullables peuvent également être utilisés pour les valeurs de retour. Cela indique que la fonction peut renvoyer soit le type spécifié, soit null. Par exemple :

function error_func(): int {
    return null; // Invalid in PHP7.1+
}

function valid_func(): ?int {
    return null; // Valid in PHP7.1+
}

Type de propriété (PHP7.4)

PHP7.4 a introduit les types nullables pour les déclarations de propriété. Cela permet à une propriété d'être soit du type spécifié, soit null.

Types d'union nullables (PHP8)

En PHP8, les types nullables sont un raccourci pour l'union des éléments spécifiés. type et nul. Par exemple :

private ?object $bar = null; // PHP7.1+
private object|null $baz = null; // PHP8+

Gestion des erreurs

Dans PHP7.0 et versions antérieures, l'utilisation du point d'interrogation avant une déclaration de type entraînera une erreur de syntaxe. Les versions PHP7.1 accepteront les types nullables.

Références

  • [Types nullables](https://www.php.net/manual/en/ language.types.declarations.php#langage.types.declarations.nullable)
  • [Type de propriétés de classe Déclarations](https://www.php.net/manual/en/langue.oop5.properties.php#langue.oop5.properties.declare)
  • [Type d'union nullable](https://wiki .php.net/rfc/union_types_v2)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn