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

in code En spécifiant la valeur de strict_types (1 ou 0), 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.

declare(strict_types=1) doit être la première instruction du fichier. Si cette instruction apparaît ailleurs dans le fichier, une erreur de compilation sera générée et le mode bloc est explicitement interdit.

La directive strict_types affecte le fichier spécifié et n'affectera pas les autres fichiers qu'il inclut (via include, etc.). Cette directive est compilée au moment de l'exécution et ne peut pas être modifiée. La façon dont cela fonctionne consiste à définir un indicateur dans l'opcode afin que les appels de fonction et les vérifications de type de retour soient conformes aux contraintes de type.

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

int

float

bool

string

interfaces

array

appelable

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

Instance

<?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 entier inapproprié apparaît dans le paramètre Le type signalera une erreur et le résultat de l'exécution est :

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

Déclaration de type de retour

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

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

int

float

bool

string

interfaces

array

Dans l'instance de déclaration de type de retour appelable

, le résultat de 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)); 
?>

Puisque 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é...


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