私が取り組んでいるWebサイトのテンプレートシステムを作成しようとしています。私は、特定のタグで囲まれたデータを処理する関数を呼び出すためにpreg_replaceを使用しようとしています。たとえば、process( 'date')は今日の日付を返し、$ の日付 $としてコードに入れられます。私は変更する必要がある文字列を見つけるためにpreg_replaceを使用していますが、関数を呼び出すことはできません - PHPは関数が代わりにプロパティであると考えるようです。preg_replaceがプロパティとしての関数を処理しています
これは私が使用していたコードです:
$view = preg_replace("/\$_([a-zA-Z0-9_]+)_\$/e", "$this->process('\\1')", $view);
これは私が取得エラーです:
お知らせ:未定義のプロパティ:/location/ClassName.class.phpのclassname :: $プロセスオンラインX
私はこれを十分に説明したいと思います。プログラムをプロパティとして表示するのではなく、メソッドとして実行するためにpreg_replaceを取得するにはどうすればよいですか?
は、文字列を置き換えるときに正しいスコープで '$ this'ですか? – stillstanding
私はそう信じています...私はラインエコー$ this-> process( 'date')を追加できます。 preg_replaceの上で動作します。 – Wige