【发布时间】:2009-09-07 16:13:52
【问题描述】:
您知道在 preg_replace 的替换部分中引用对象的任何方法吗?我试图用对象的属性值替换字符串中的占位符(用百分号分隔)。这将在对象本身中执行,因此我尝试了各种方法来使用 /e 修饰符来引用 $this。像这样的:
/* 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 修饰符我走在正确的轨道上。但也不完全确定这一点。也许这可以更简单地实现?
对此有什么想法吗?提前谢谢你。
【问题讨论】:
标签: object reference preg-replace