Php 用他的值替换常量名
如何将标记的常量名称替换为字符串中的值? 比如说,Php 用他的值替换常量名,php,constants,Php,Constants,如何将标记的常量名称替换为字符串中的值? 比如说, define('name', 'Evgeny'); echo foo('[verb], dear [name]'); # Must be '[verb], dear Evgeny' or '[something], dear Evgeny' 解决了。下一步很好: function foo($s) { $m = array(); preg_match_all('/(\[[^\]]+\])/', $s, $m); $m =
define('name', 'Evgeny');
echo foo('[verb], dear [name]');
# Must be '[verb], dear Evgeny' or '[something], dear Evgeny'
解决了。下一步很好:
function foo($s) {
$m = array();
preg_match_all('/(\[[^\]]+\])/', $s, $m);
$m = $m[0];
print_r($m);
$v = array();
for ($i = 0; $i < count($m); $i++) {
$name = substr($m[$i], 1, -1);
$v[$i] = defined($name) ? constant($name) : '!' . $name . '!';
}
return str_replace($m, $v, $s);
}
define('name', 'Evgeny');
$str = '[verb], dear [name]';
echo foo($str);
函数foo($s){
$m=数组();
preg_match_all('/(\[^\]]+\])/',$s,$m);
$m=$m[0];
印刷费(百万美元);
$v=数组();
对于($i=0;$idefine('name', 'Evgeny');
echo '[verb], dear ', name;
单独使用,不要用引号括起来,那怎么办
echo foo('[verb], dear '.name);
您可以使用:
echo foo( '[verb], dear ' . name );
我不是想把它传给
foo()
,只是告诉他如何使用常量。我知道。我的意思是他想把字符串发送到foo()
。如果他使用您在上面放置的字符串,逗号concat字符将导致严重问题;)我知道他想做什么,但他的工作仍然是将其更改为他的需要,而不是复制/粘贴。请更新已发布的答案。而不是复制。已经发布的答案无效。我正在评论你的答案,让你知道这个错误。你的名字后面有一个点和一个引号。我不知道这行会是什么:)想让这个函数foodefine('name','Evgeny')$str='[动词],亲爱的[姓名];echo foo($str)代码>