我有一个用于构建字符串的预定义模式,应该在整个脚本中定期创建。
$str="$first - $second @@ $third"; // pattern for building the string
$first="word1";
$second="word2";
$third="word3";
$string= ..?? // string should be built here based on the pattern
目前,我正在使用eval
基于最初定义的模式生成适当的字符串。但是,由于这种情况偶尔会发生并且eval
通常很糟糕,我希望找到另一种方法。
请注意,模式在所有代码之上只定义一次,我只能通过一行来编辑所有脚本的模式。因此,任何$string
改变都不应触及。
我试过create_function
了,但需要相同数量的参数。使用eval
,我可以轻松更改模式,但是使用create-function
,我需要更改整个脚本。例如,如果将字符串模式更改为
$str="$first @@ $second"; // One arg/var is dropped
评估示例:
$str="$first - $second @@ $third"; // Pattern is defined one-time before codes
$first="word1";
$second="word2";
$third="word3";
eval("\$string = \"$str\";");
create_function 示例:
$str=create_function('$first,$second,$third', 'return "$first - $second @@ $third";');
$string=$str($first,$second,$third);