J'essaie de créer un système de modèle pour un site Web sur lequel je travaille. J'essaie d'utiliser preg_replace pour appeler une fonction pour traiter les données entourées par certaines balises. Par exemple, process ('date') retournera la date du jour et sera mis dans le code $ date $. J'utilise preg_replace pour trouver les chaînes que j'ai besoin de modifier, mais je ne peux pas appeler la fonction - PHP semble penser que la fonction est une propriété à la place.preg_replace traite une fonction comme une propriété
C'est le code que je utilise:
$view = preg_replace("/\$_([a-zA-Z0-9_]+)_\$/e", "$this->process('\\1')", $view);
Ceci est l'erreur que je reçois:
Avis: Undefined property: ClassName :: processus $ en /location/ClassName.class.php sur la ligne X
J'espère que j'ai suffisamment expliqué cela. Comment puis-je obtenir preg_replace pour exécuter le processus en tant que méthode, au lieu d'essayer de l'afficher en tant que propriété?
'$ this' est-il dans la bonne portée quand il remplace la chaîne? – stillstanding
Je crois que ... Je peux ajouter une ligne echo $ this-> process ('date'); au-dessus du preg_replace et cela fonctionne. – Wige