在PHP中用另一个变量替换变量

在PHP中用另一个变量替换变量,php,variables,syntax,Php,Variables,Syntax,这是我的情况,假设我有两个变量: $a = "Peter"; $b = "tall"; 然后,我可以通过 $c = " $a is very $b "; 这让我联想到:“彼得很高” 但是,如果我将另一个变量$e传递给我的函数,并且字符串是“$a是非常$b” 然后,我打印出$e,它只显示“$a是非常$b” 我所期望的是“彼得很高”,因为$e等于$c 这是整个逻辑流程: $e = " $a is very $b "; getMsg($e); function getMsg($e){ $a =

这是我的情况,假设我有两个变量:

$a = "Peter";
$b = "tall";
然后,我可以通过

$c = " $a is very $b ";
这让我联想到:“彼得很高”

但是,如果我将另一个变量$e传递给我的函数,并且字符串是“$a是非常$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
}

如何实现此功能

请尝试此代码。我希望这就是你想要的

<?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);

您可以使用
sprintf
%s
符号是字符串标记,可替换为格式字符串(sprintf的第一个参数)

或者是
getMsg()
函数的耦合程度较低的版本:

function getMsg($msg,$name,$is){
  echo sprintf($msg, $name, $is);
}  
getMsg("%s is very %s", "Peter", "tall");

您尝试的函数在哪里?打开错误报告,您将看到类似于
的内容注意:未定义变量:a in
注意:未定义的变量:b在<代码>$a
$b
$e
行中未定义。而且
echo$e
可能会输出“非常”。(另外,您的
echo
缺少一个
)您不应该对字符串使用双引号,而应该始终使用单引号。如果您试图在不使用双引号的情况下重写代码并自行连接字符串,我认为您将很容易发现问题所在。您需要检查变量的范围,还需要检查函数定义和调用函数的方式。您不应该对字符串使用双引号,始终是单引号。这就是导致行动计划混乱的原因——并非总是如此。e、 g.
$a='hello';回显“$a”
是的,这就是重点:这会让你考虑是否需要报价。你不能到处使用它们。在这个例子中,你绝对不需要引号,简单的或双引号!
$e = "%s is very %s";
getMsg($e);
function getMsg($e){
  $a = "Peter";
  $b = "tall";
  echo sprintf($e, $a, $b);
}
function getMsg($msg,$name,$is){
  echo sprintf($msg, $name, $is);
}  
getMsg("%s is very %s", "Peter", "tall");