Знаете ли вы какой-либо способ сослаться на объект в замещающей части preg_replace. Я пытаюсь заменить заполнители (разделенные знаками предпроцента) в строке со значениями атрибутов объекта. Это будет выполняться в самом объекте, поэтому я испробовал всевозможные способы обращения к $this с модификатором /e. Что-то вроде этого:
/* for instance, I'm trying to replace
* %firstName% with $this->firstName
* %lastName% with $this->lastName
* etc..
*/
$result = preg_replace( '~(%(.*?)%)~e', "${'this}->{'\\2'}", $template );
Я не могу заставить любую вариацию на эту тему работать. Одно из сообщений, которые я получаю: Не удается преобразовать объект Model_User в строку.
Но, конечно, я не собираюсь преобразовывать объект, представленный $this, в строку... Я хочу получить атрибут объекта, который соответствует заполнителю (конечно, без знаков процента).
Я думаю, что я на правильном пути с модификатором /e. Но и в этом не совсем уверен. Может быть, этого можно добиться гораздо проще?
Есть идеи по этому поводу? Заранее спасибо.