Maison > développement back-end > tutoriel php > Comment puis-je appeler des fonctions PHP dans des chaînes HEREDOC ?

Comment puis-je appeler des fonctions PHP dans des chaînes HEREDOC ?

Linda Hamilton
Libérer: 2024-11-28 17:21:11
original
298 Les gens l'ont consulté

How Can I Call PHP Functions Within HEREDOC Strings?

Invocation de fonctions PHP dans des chaînes HEREDOC : une analyse détaillée

Les chaînes HEREDOC offrent un moyen pratique de représenter des blocs de texte multilignes en PHP. Bien qu'ils prennent en charge la substitution de variables à l'aide du préfixe « $ », l'accès à des expressions plus complexes, telles que des éléments de tableau, nécessite l'utilisation d'accolades « {} ».

Dans PHP 5, il est devenu possible d'invoquer des fonctions entre accolades. dans les chaînes HEREDOC. Cela nécessite toutefois une approche nuancée. Le nom de la fonction doit être stocké dans une variable et l'appel doit émuler une fonction nommée dynamiquement. Par exemple :

$fn = 'testfunction';
function testfunction() { return 'ok'; }
$string = <<<heredoc
plain text and now a function: {$fn()}
heredoc;
Copier après la connexion

Cette approche peut paraître lourde par rapport à la syntaxe d'invocation directe de fonction :

$string = <<<heredoc
plain text and now a function: {testfunction()}
heredoc;
Copier après la connexion

Des solutions alternatives existent, comme sortir du HEREDOC pour appeler la fonction ou inverser l'approche en intégrant du code PHP dans HTML, comme le montre l'exemple de code fourni dans la question. Cependant, ces méthodes ont leurs limites.

Une solution plus simple

Si une solution plus simple est souhaitée, une approche simplifiée peut être utilisée :

function fn($data) {
  return $data;
}
$fn = 'fn';

$my_string = <<<EOT
Number of seconds since the Unix Epoch: {$fn(time())}
EOT;
Copier après la connexion

Cette approche offre une alternative moins alambiquée tout en conservant la fonctionnalité d'appel de fonctions dans les chaînes HEREDOC.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal