Déclaration de type scalaire PHP et de valeur de retour


Déclaration de type scalaire

Par défaut, tous les fichiers PHP sont en mode de vérification de type faible.

PHP 7 ajoute la fonctionnalité de déclaration de type scalaire. Il existe deux modes pour la déclaration de type scalaire :

  • Mode forcé (par défaut)
  • Mode strict

Format de syntaxe de déclaration de type scalaire :

declare(strict_types=1);

En spécifiant la valeur de strict_types (1 ou 0) dans le code, 1 Indique un mode de vérification de type strict, qui s'applique aux appels de fonction et aux instructions return ; 0 indique un mode de vérification de type faible.

Les paramètres de type pouvant être utilisés sont :

  • int

  • float

  • bool

  • string

  • interfaces

  • array

  • callable

Instance en mode forcé

instance

<?php
// 强制模式
function sum(int ...$ints)
{
   return array_sum($ints);
}
print(sum(2, '3', 4.1));
?>

Le résultat de sortie de l'exécution du programme ci-dessus est :

9

Exemple de résumé Convertissez le paramètre 4.1 en un entier 4 puis ajoutez-le.

Exemple de mode strict

Exemple

<?php
// 严格模式
declare(strict_types=1);
function sum(int ...$ints)
{
   return array_sum($ints);
}
print(sum(2, '3', 4.1));
?>

Étant donné que le programme ci-dessus utilise le mode strict, si un type entier inapproprié apparaît dans le paramètre, une erreur sera être signalé. Exécuter Le résultat de sortie est :

Erreur fatale PHP : Erreur de type non interceptée : L'argument 2 transmis à sum() doit être du type entier, chaîne donnée, appelée dans...

Déclaration du type de retour

PHP 7 ajoute la prise en charge de la déclaration du type de retour, qui spécifie le type de valeur de retour de la fonction.

Les types de retour pouvant être déclarés sont :

  • int

  • float

  • bool

  • string

  • interfaces

  • array

  • callable

Instance de déclaration de type de retour

Instance, le résultat du retour doit être un entier :

Instance

<?php
declare(strict_types=1);
function returnIntValue(int $value): int
{
   return $value;
}
print(returnIntValue(5));
?>

Le résultat de sortie de l'exécution du programme ci-dessus est :

5

Instance d'erreur de déclaration de type de retour

Instance

<?php
declare(strict_types=1);
function returnIntValue(int $value): int
{
   return $value + 1.0;
}
print(returnIntValue(5));
?>

Étant donné que le programme ci-dessus adopte le mode strict, la valeur de retour doit être int, mais le résultat du calcul est float, donc une erreur sera signalée. Le résultat de l'exécution est :

.
Erreur fatale : Uncaught TypeError : la valeur de retour de returnIntValue() doit être du type entier, float renvoyé...