这是我的情况,假设我有两个变量:
$a = "Peter";
$b = "tall";
然后,我可以通过以下方式将其合并
$c = " $a is very $b ";
这给了我字符串:“彼得很高”
[但是,如果我有另一个变量$ e传递给函数,并且字符串为“ $ a is very $ b”然后,我打印出$ e,它只是告诉我“ $ a非常$ b”;
我期望的是“彼得很高”,因为$ e等于$ c。
这是整个逻辑流程:
$e = " $a is very $b ";
getMsg($e);
function getMsg($e){
$a = "Peter";
$b = "tall";
$c = " $a is very $b ";
echo $c //Peter is very tall
echo $e //$a is very $b
}
我如何实现此功能?
您可以使用sprintf
sprintf documentation。 %s
符号是替换为格式字符串(sprintf的第一个参数)的字符串标记。
$e = "%s is very %s";
getMsg($e);
function getMsg($e){
$a = "Peter";
$b = "tall";
echo sprintf($e, $a, $b);
}
或getMsg()
函数的耦合度较低的版本:
function getMsg($msg,$name,$is){
echo sprintf($msg, $name, $is);
}
getMsg("%s is very %s", "Peter", "tall");
请尝试此代码。希望这就是您想要的。
<?php
// Your code here!
$a = "Peter";
$b = "tall";
$e = $a."is very".$b;
getMsg($e,$a,$b);
function getMsg($e,$a,$b)
{
$c = $a."is very".$b;
echo $c;
echo $e;
}
?>
尝试一下。它应该工作正常。您需要在函数外部定义$a
和$b
。
function getString($a,$b,$e){
$c = " $a is very $b ";
echo $c;
echo '<br/>'.$e;
}
$a = "Peter";
$b = "tall";
$e = " $a is very $b ";
$response = getString($a,$b,$e);
输出:
Peter is very tall
Peter is very tall