Je suis en train d'écrire un système de template trivial pour exécuter des requêtes dynamiques sur un serveur.str_replace comportement inattendu
J'avais initialement le code suivant dans ma classe templating
$output = file_get_contents($this->file);
foreach ($this->values as $key => $value) {
$tagToReplace = "{$key}";
$output = str_replace($tagToReplace, $value, $output);
}
Je remarque que les cordes ne sont pas remplacés comme je m'y attendais (les caractères « {} » étaient encore présents dans la sortie).
J'ai alors changé la ligne 'offensant' à:
$tagToReplace = '{'."$key".'}';
Il a ensuite travaillé comme prévu. Pourquoi ce changement était-il nécessaire? Est-ce que "{" dans une chaîne interprétée a une signification particulière en PHP?
vous avez oublié une fonction anonyme pour envelopper les touches dans {}! – meze