Maison >développement back-end >tutoriel php >Comment déduire le type de valeur de retour de la fonction PHP ?

Comment déduire le type de valeur de retour de la fonction PHP ?

WBOY
WBOYoriginal
2024-04-10 21:24:011062parcourir

PHP 8 a introduit l'inférence de type, permettant de spécifier le type de retour dans la déclaration de fonction (comme functionName(): type). Par exemple, une fonction nommée sum renvoie le type int et peut être appelée avec $name = $user->getName(). Il convient de noter que le type de retour réel doit être cohérent avec le type de retour déclaré, sinon une exception TypeError sera levée.

PHP 函数返回值的类型如何推断?

Inférence de type pour les valeurs de retour de la fonction PHP

Dans PHP 8, la fonctionnalité d'inférence de type a été introduite pour vous aider à déduire le type de la valeur de retour de la fonction. Cela se fait en spécifiant le type de retour attendu dans la déclaration de fonction. La syntaxe est la suivante :

function functionName(): type {
  // 函数体
}

Par exemple, nous définissons une fonction appelée sum qui ajoute deux nombres et renvoie une valeur entière : sum 的函数,它将两个数字相加并返回一个整数值:

function sum(int $a, int $b): int {
  return $a + $b;
}

实战案例

假设我们有一个 User 类,它有一个 getName 方法,该方法返回一个字符串:

class User {
  public function getName(): string {
    return "John Doe";
  }
}

以下是如何使用类型推断调用 getName 方法:

$user = new User();
$name = $user->getName(); // $name 将被推断为字符串类型

注意事项

  • 如果实际返回类型与声明的返回类型不匹配,PHP 将引发一个 TypeError 异常。
  • 对于继承类,派生类的返回类型可以覆盖基类的返回类型。
  • 对于联合类型(例如 int|string),函数可以返回任何符合联合类型的类型。
  • 您仍然可以使用 @returnrrreee
Cas pratique🎜🎜🎜Supposons que nous ayons A Utilisateur qui a une méthode getName qui renvoie une chaîne : 🎜rrreee🎜Voici comment appeler la méthode getName en utilisant l'inférence de type :🎜rrreee🎜🎜Notes 🎜🎜
  • Si le type de retour réel ne correspond pas au type de retour déclaré, PHP déclenchera une exception TypeError. 🎜
  • Pour les classes héritées, le type de retour de la classe dérivée peut remplacer le type de retour de la classe de base. 🎜
  • Pour les types d'union (tels que int|string), la fonction peut renvoyer n'importe quel type conforme au type d'union. 🎜
  • Vous pouvez toujours utiliser la balise @return pour spécifier le type de valeur de retour de la fonction, mais elle sera remplacée par la fonctionnalité d'inférence de type. 🎜🎜

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