2014-12-03 105 views
-3

我有这样的代码如何让将要改变一个变量的值后

$number = 1; 
echo $number; 

for ($i=0; $i < 10; $i++) { 
    $number++; 
} 

echo $number输出111

如何才能得到最后的$number价值,当我改变它之前调用它?

+2

我的水晶球显示,至少有一个\\将被'function'取代,你可能会对http://docs.php.net/language.variables.scope – VolkerK 2014-12-03 11:03:20

回答

1

一旦你输出了一些东西给浏览器,就完成了。你以后不能再改变它。处理这个问题的唯一方法是在你找到最终值之前不要输出变量;即在这个例子中你将echo语句移动到底部。

它通常被认为是一个好主意,先运行所有的PHP代码,并确定所有的变量,并为了防止你现在有什么样的问题只然后开始输出的东西到浏览器。

+0

感兴趣,你的意思是我应该把循环放在一个函数中?并在调用变量之前运行它? – 2014-12-03 11:13:56

+0

不,我的意思是你永远不应该回应其价值可能会改变的变量。首先做所有的计算,然后你回应它。 – Erik 2014-12-03 11:15:21

0
$number = 1; 
echo 'before increment :'.$number; 

for ($i=0; $i < 10; $i++) { 
    $number++; 
} 
echo 'after increment :'.$number; 
0

试试这个办法,现在你会得到预期的结果:

$number = 1; 
for ($i=0; $i < 10; $i++) { 
    $number++; 
} 

echo $number; 

原因,你已经把回声$数量的增加,这在逻辑上是错误的之前:

相关问题