在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");