我有这样的代码如何让将要改变一个变量的值后
$number = 1;
echo $number;
for ($i=0; $i < 10; $i++) {
$number++;
}
的echo $number
输出1
不11
。
如何才能得到最后的$number
价值,当我改变它之前调用它?
我有这样的代码如何让将要改变一个变量的值后
$number = 1;
echo $number;
for ($i=0; $i < 10; $i++) {
$number++;
}
的echo $number
输出1
不11
。
如何才能得到最后的$number
价值,当我改变它之前调用它?
一旦你输出了一些东西给浏览器,就完成了。你以后不能再改变它。处理这个问题的唯一方法是在你找到最终值之前不要输出变量;即在这个例子中你将echo语句移动到底部。
它通常被认为是一个好主意,先运行所有的PHP代码,并确定所有的变量,并为了防止你现在有什么样的问题只然后开始输出的东西到浏览器。
感兴趣,你的意思是我应该把循环放在一个函数中?并在调用变量之前运行它? – 2014-12-03 11:13:56
不,我的意思是你永远不应该回应其价值可能会改变的变量。首先做所有的计算,然后你回应它。 – Erik 2014-12-03 11:15:21
$number = 1;
echo 'before increment :'.$number;
for ($i=0; $i < 10; $i++) {
$number++;
}
echo 'after increment :'.$number;
试试这个办法,现在你会得到预期的结果:
$number = 1;
for ($i=0; $i < 10; $i++) {
$number++;
}
echo $number;
原因,你已经把回声$数量的增加,这在逻辑上是错误的之前:
我的水晶球显示,至少有一个\\将被'function'取代,你可能会对http://docs.php.net/language.variables.scope – VolkerK 2014-12-03 11:03:20