Maison  >  Article  >  développement back-end  >  Que signifie avoir une variable qui n'est valide que dans le gestionnaire

Que signifie avoir une variable qui n'est valide que dans le gestionnaire

王林
王林avant
2024-02-05 21:15:13723parcourir

Que signifie avoir une variable qui nest valide que dans le gestionnaire

Contenu de la question

Dans la documentation go-optical, ils disent :

as a rule of thumb, you must only use context values within the
handler, and you must not keep any references

Est-ce que je peux passer le contexte comme argument de fonction comme ceci :

func getlist(c *fiber.ctx) error {
   result, err := user.search(c)
}

func search(c *fiber.ctx) (user, err) {
   id := c.params("id")
}

Est-ce considéré comme une mauvaise pratique ?

Je ne comprends pas très bien cette phrase :

as soon as you return from the handler, any values you have obtained
from the context will be re-used in future requests and will change
below your feet.

Donc, si j'ai envoyé la réponse au client, la valeur des paramètres sera-t-elle réutilisée ? Réutilisé par qui ? Par moi ou à la demande de quelqu'un d'autre ?

func getlist(c *fiber.ctx) error {
   id := c.params("id") // 911
   return c.sendstring("hello, world!")
}

Si la valeur de l'identifiant est 911, cela signifie-t-il que les demandes d'autres personnes recevront également le 911 ?

Qu'est-ce que cela signifie

will change below your feet

Qui peut l'expliquer en détail pour qu'il soit plus facile à comprendre pour un débutant comme moi ? Merci...


Bonne réponse


L'objet de contexte réel peut être réutilisé par le framework après avoir appelé votre gestionnaire, vous ne pouvez donc pas vous fier à son état après le retour du gestionnaire.

Est-ce que je peux passer le contexte comme paramètre de fonction comme celui-ci ?

C'est très bien, tant que Search le contexte n'est pas stocké ailleurs. S'il utilise simplement la valeur dans le contexte pour effectuer la recherche et renvoie les résultats, ce n'est pas un problème.

Donc, si j'ai envoyé la réponse au client, la valeur des paramètres sera-t-elle réutilisée ? Réutilisé par qui ? Par moi ou à la demande de quelqu'un d'autre ?

Le framework réutilisera l'objet de contexte réel tout en traitant les demandes ultérieures.

Que signifie « des changements se produiront sous vos pieds » ?

Si vous ne suivez pas les conseils ci-dessus et conservez plutôt une référence au contexte après le retour du gestionnaire, les valeurs de ce contexte changeront de manière inattendue car le framework utilise ce contexte pour de nouvelles requêtes.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer