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

问题描述 投票:0回答:3

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

$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
}

我如何实现此功能?

php variables syntax
3个回答
1
投票

您可以使用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");

0
投票

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

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

0
投票

尝试一下。它应该工作正常。您需要在函数外部定义$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
© www.soinside.com 2019 - 2024. All rights reserved.