我在PHP中有两个变量,比如$a
和$b
。 $a
是一个字符串变量。它包含$b
。如果$a
已更新,我想自动更新$b
。
$b = 4;
$a = "value is ".$b;
echo $a; // value is 4
$b = 5;
echo $a; // should print value is 5
答案 0 :(得分:1)
是的,如果您通过引用将$a
分配给$b
,则$a
可以自动更新,但不应该为$a
分配任何字符串连接。
尝试:
$b = 4;
$a = &$b;
$c = 'Value is ';
echo $c.$a;
$b = 5;
echo $c.$a;
答案 1 :(得分:1)
不可能以你想要的方式。你看,变量可以通过引用传递,如下所示:
$a = &$b;
这会导致$a
在$b
更改时自动更新,但是,它可能不包含任何其他值(如您想要的字符串),因此您必须使用 或另一个变量来做。
$b = &$a;
echo "Value is $b";
或
$b = &$a;
$description = "Value is ";
echo $description . $b;
答案 2 :(得分:1)
PHP没有该功能。您可以使用的相关功能包括:
References,它允许您将一个变量别名化为另一个变量。每个变量的值都是相同的,因为它们只是符号表别名。
$b = "I'm b."
$a =& $b;
echo $a;
Variable variables,其中一个变量包含另一个变量的名称。
$b = "I'm b."
$a = 'b';
echo $$a;
但是,通常应避免使用变量变量,因为它们通常会导致不必要的混淆。
功能(正如mithunsatheesh所暗示的那样)。这与您想要的最接近,因为函数调用是一个具有您正在寻找的值的表达式。在将值插入double-quoted字符串或heredoc时,函数在变量所在的位置不起作用的唯一位置。相反,您必须使用字符串连接,或者将函数调用的结果分配给局部变量并插入它。
答案 3 :(得分:0)
您应该通过引用传递它。怎么做?
创建一个功能:
function showValue(&$b)
{
return 'value is ' . $b;
}
echo showValue($b);
我认为这应该有用。
答案 4 :(得分:0)
查看http://www.php.net/manual/en/language.references.whatdo.php
$a = 4;
$b =& $a;
$a = 5;
echo $b; // should print 5;
答案 5 :(得分:0)
当php脚本运行时,它会“逐行”运行。当您像这样分配时
$b = 4;
$a = "value is ".$b;
$ b的值已经作为整数4(不是$ b)分配给$ a。因此,如果下一个$b
更新为其他值。变量$a
对此一无所知。
在这种情况下,您必须使用函数或变量引用,如其他一些答案所述
$a = 4;
$b =& $a;
$a = 5;
echo $b;