如何使字符串内部由变量组成的变量可变


How to make variable which is made of variable inside string changeable

这是代码:

x = 8;
$y = "Value is $x <br>";
echo $y;
$x = $x + 2;
echo $y;

结束,结果是:

Value is 8
Value is 8 

但我期待:

Value is 8
Value is 10

如何使$y表现在预期的方式?

它以预期的方式运行。你的期望是错误的。

$y = "Value is $x <br>";

这是一个赋值语句。它分配一个字符串值。该字符串值是字符串表达式的结果。表达式被求值,然后字符串被烘烤。之后不会改变。

在PHP中没有标准的方法来拥有可变字符串值。可以为外部变量创建具有__toString%s占位符的对象。但这是一个很大的变通

一旦你设置了Y,它就不再跟随x。如果$ Y是一个字符串,你永远不会得到这个行为,但如果$ Y也是一个int,你可以将它设置为一个别名:

$y= &$x;

在这种情况下,$y的值将随着$x的值的变化而变化。