这是代码:
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按照预期的方式行事?
答案 0 :(得分:3)
它表现得很好。你的期望是错误的。
$y = "Value is $x <br>";
这是一份作业陈述。它分配一个字符串值。该字符串值是字符串表达式的结果。表达式得到评估,然后烘焙字符串。之后不会改变。
PHP中没有标准的方法来获取变量字符串值。可以为外部变量创建一个__toString
和%s
placeholders的对象。但这是一个很大的解决方法。
答案 1 :(得分:0)
一旦你设置了Y,它就不再遵循x了。如果$ y是一个字符串,你永远不会得到这种行为,但如果$ y也是一个int,你可以将它设置为别名:
$y= &$x;
在这种情况下,$ y的值会随着$ x的值的变化而改变。
本