Type scalaire PHP et déclaration de type 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);

La valeur de strict_types (1 ou 0) est spécifiée dans le code. 1 indique le mode de vérification de type strict, qui s'applique aux appels de fonction et aux instructions de retour ; 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 de ce qui précède le programme est :

9

Résumé de l'instance, 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é.Execute Le résultat est :

PHP Fatal error:  Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, called in……

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 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));
?>

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 :

Fatal error: Uncaught TypeError: Return value of returnIntValue() must be of the type integer, float returned...
.
Formation continue
||
<?php // 强制模式 function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel