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);
int
float
bool
string
interfaces
array
appelable
instance en mode forcé
instance<?php // 強(qiáng)制模式 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 mode strict
Instance<?php // 嚴(yán)格模式 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
<?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é...