Maison >développement back-end >tutoriel php >Comment fonctionnent les types nullables dans PHP 7 et supérieur ?

Comment fonctionnent les types nullables dans PHP 7 et supérieur ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 12:39:11742parcourir

How Do Nullable Types Work in PHP 7 and Above?

Comprendre les types nullables de PHP 7 (?string ou ?int)

Dans PHP 7, une nouvelle fonctionnalité connue sous le nom de "nullable types" a été introduit. Il permet aux développeurs de spécifier qu'un paramètre ou une valeur de retour peut être du type spécifié ou nul. Les types nullables sont indiqués par un point d'interrogation (?) placé avant la déclaration de type.

Types nullables dans les paramètres

Syntaxe :

function test(?string $parameter1, string $parameter2) {}
  • Les paramètres marqués comme nullables (?string) peuvent accepter à la fois les chaînes et null valeurs.
  • Les paramètres sans types nullables (chaîne) doivent recevoir une valeur non nulle, sinon une erreur sera générée.

Exemple :

test("foo", "bar"); // OK
test(null, "foo"); // OK
test("foo", null); // Error

Types nullables en retour Values

Syntaxe :

function error_func(): int {
    return null ; // Error: Return value must be of type integer
}

function valid_func(): ?int {
    return null ; // OK
}
  • Les fonctions avec des types de retour nullables peuvent renvoyer le type spécifié ou null.
  • Fonctions sans types de retour nullables doit renvoyer des valeurs non nulles sinon une erreur sera

Types nullables dans les propriétés (PHP 7.4)

Syntaxe :

class Foo
{
    private ?object $bar = null; // OK: can be null
}
  • Propriétés de classe peuvent avoir des types nullables, indiquant qu'ils peuvent contenir des valeurs nulles valeurs.

Nullable Union Types (PHP 8.0)

Depuis PHP 8.0, la notation "?T est considérée comme un raccourci pour le cas courant de T|null".

Syntaxe :

class Foo
{
    private object|null $baz = null;
}
  • Les types d'union nullables permettent d'attribuer aux variables le type spécifié ou null.

< ;h3>Gestion des erreurs

Si la version de PHP utilisée est inférieure à 7.1, une erreur de syntaxe sera générée si des types nullables sont utilisés. Dans de tels cas, supprimez le point d'interrogation (?).

Références

  • Nullable Type (PHP 7.1) :
  • Déclarations de types de propriétés de classe (PHP 7.4) :
  • Type d'union nullable (PHP 8.0) :

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