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 );
このテーマのバリエーションを機能させることはできません。私が受け取っているメッセージの 1 つは、オブジェクト Model_User を文字列に変換できません。
しかしもちろん、$this で表されるオブジェクトを文字列に変換するつもりはありません... プレースホルダーに一致するオブジェクトの属性を取得したい (もちろんパーセント記号はありません)。
/e 修飾子で正しい軌道に乗っていると思います。しかし、これについても完全にはわかりません。多分これはもっと簡単に達成できますか?
これについてのアイデアはありますか?前もって感謝します。