PHP en utilisant Gettext l'intérieur <<<EOF chaîne
I utilisation de PHP EOF chaîne de format contenu HTML sans les tracas d'avoir à échapper les guillemets etc. Comment puis-je utiliser la fonction à l'intérieur de cette chaîne?
<?php
$str = <<<EOF
<p>Hello</p>
<p><?= _("World"); ?></p>
EOF;
echo $str;
?>
Vous devez vous connecter pour publier un commentaire.
Aussi loin que je peux voir dans le manuel, il n'est pas possible d'appeler des fonctions à l'intérieur de HEREDOC cordes. Un lourd moyen serait de préparer les mots à l'avance:
une solution de contournement idée qui vient à l'esprit est la construction d'une classe avec un magie de la méthode de lecture.
Vous pouvez déclarer une classe comme ceci:
Initialiser un objet de la classe à un certain point:
Vous pouvez ensuite utiliser la syntaxe suivante pour faire un gettext de recherche à l'intérieur d'un HEREDOC bloc:
$translate->World
seront automatiquement traduites pour la gettext de recherche grâce à la magie de la méthode de lecture.D'utiliser cette méthode pour les mots par des espaces ou des caractères spéciaux (par exemple, un gettext entrée nommée
Hello World!!!!!!
, vous devrez utiliser la notation suivante:C'est tout non testé mais devrait fonctionner.
$_="_";
et{$_('text')}
. Mais la lecture de la syntaxe est +1.Aussi loin que je peux voir, vous venez d'ajouter heredoc par erreur
Pas besoin d'utiliser laid syntaxe heredoc ici.
Il suffit de retirer et tout fonctionnera:
I use PHP's EOF string to format HTML content without the hassle of having to escape quotes etc
... mais c'est pas grave de toute façon, je suis juste fractionnement des poils sur un dimanche après-midi 🙂use PHP's EOF string
mais également raisonnementwithout the hassle of having to escape quotes
. Et HTML est encore mieux, car il vous permet de vous mettre en forme le contenu HTML sans les tracas de heredoc soit. De gros blocs de code HTML sont toujours mieux que HTML, pas de code PHP. Si vous ne le voyez pas son jusqu'à vous.