Maison  >  Article  >  développement back-end  >  Comment puis-je accéder aux variables nommées dynamiquement dans Twig ?

Comment puis-je accéder aux variables nommées dynamiquement dans Twig ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-08 13:11:02618parcourir

How Can I Access Dynamically Named Variables in Twig?

Accès aux noms de variables dynamiques dans Twig

Dans Twig, vous pouvez rencontrer des scénarios dans lesquels vous devez accéder à des variables avec des noms dynamiques. Par exemple, vous avez des variables nommées placeholder1, placeholder2, etc., et vous souhaitez les afficher dans un contexte de boucle.

Pour y parvenir, vous pouvez utiliser deux approches :

1. Fonction d'attribut :

{{ attribute(_context, 'placeholder' ~ id) }}

Dans ce cas, _context est le tableau de contexte, l'espace réservé est la partie statique du nom de la variable et id est la partie dynamique. La concaténation des deux parties avec ~ génère le nom complet de la variable.

2. Notation entre crochets :

{{ _context['placeholder' ~ id] }}

Cette méthode est plus concise que la fonction d'attribut et fournit également la même fonctionnalité.

Gestion des variables inexistantes :

Pour éviter les erreurs dues à des variables inexistantes, pensez à définir l'option d'environnement strict_variables sur true et à utiliser la valeur par défaut filter :

{{ _context['placeholder' ~ id]|default }}
{{ attribute(_context, 'placeholder' ~ id)|default }}

Alternativement, vous pouvez utiliser le test défini pour vérifier l'existence d'une variable avant d'y accéder :

{% if _context['placeholder' ~ id] is defined %} ... {% endif %}

En utilisant ces techniques, vous pouvez accéder dynamiquement aux variables à Twig pour répondre à vos besoins spécifiques.

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