PHPで定数の内容を解析することは可能ですか?
例えば、
define('WHO_AM_I', 'My name is $_SESSION['who_am_i'].'); // setup the constant string
echo eval(WHO_AM_I); // something like this -- but the eval() returns an error
_SESSION 変数の値は、後でスクリプト ストリームで実際に定数を使用するまでわからないことに注意してください。
ありがとう。
これを行いたい理由で修正
スクリプトから「ハードコーディング」を引き出し、ユーザーがサイトで特定の分類法を構成できるようにしたいと考えています。そのため、これを行っている間に、スクリプトの後半で解析できると思われる準動的定数も作成したいと考えました。
出来ないなら・・・出来ない。
ただし、質問をしたことで私を撃たないでください。
この混乱を避けるための最後のコメント
私の質問の目的は、 eval() 関数とは関係ありません。そもそも入れてしまったことを後悔しています。
質問に eval() を入れたのは、スタックオーバーフローのメンバーに、オープンエンドを尋ねるのではなく、質問の準備を少ししたことを示すためだけです。したがって、eval() は無視してください。
私が知りたいのは、スクリプトの後半で割り当てられた値を解析できるようにする方法で define() を何らかの方法で作成できるかということだけです。それだけです、それだけです。
修正C
このようにしたくありませんが、次のことができることはわかっています。
define('PARSE_ABLE_CONSTANT_PART_A', 'My name is ');
define('PARSE_ABLE_CONSTANT_PART_B', '.');
...後でスクリプトの道をたどります...
echo PARSE_ABLE_CONSTANT_PART_A . $_SESSION['who_am_i'] . PARSE_ABLE_CONSTANT_PART_B;
定数に埋め込まれた変数を使用して滑らかにすることができれば、このようにしたくありません。