这是代码:
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的值的变化而变化。
本