[PHP-users 28953] Re: 変数内で関数を実現するには
papa pahoo
papa @ pahoo.org
2006年 4月 7日 (金) 13:58:05 JST
パパぱふぅです。
私も
> $String = "あいうえお。" . MUL(5);
が近道だと思います。
もう1つ、PHP には「可変変数」という機能があるのですが、
川口さんのご要望とはちょっと違うかも‥‥。
参考程度のものとして、$Stringの中にユーザー関数が出てきたら
無理矢理に評価するというパーサを作ってみました。
function __parse_str($str) {
$ar = get_defined_functions();
foreach($ar["user"] as $key=>$val) {
if (preg_match("/$val/i", $str)) {
$s = preg_replace("/(.*)($val)\((.*)\)(.*)/i", "\"$1\" . $2($3) . \"$4\";", $str);
$str = eval("return " . $s . ";");
}
}
return $str;
}
下記のように使えば、ご要望のアウトプットになるのではないかと‥‥。
$String = "あいうえお。MUL(5)";
print __parse_str($String);
==========================
パパぱふぅ
http://www.pahoo.org/
==========================
PHP-users メーリングリストの案内