我正在bcmath
为阶乘计算进行 php 扩展,我发现 echo
并 return
导致不同的结果
此代码生成错误的结果
<?php
$a = 25;
function test($a){
if($a>1){
$sum = bcmul($a, test($a-1)) ;
echo $sum;
}
if($a == 1) { return $a ;}
}
test($a); // Output 200000000000000000000000
?>
而下面的代码生成正确的结果
<?php
$a = 25;
function test($a){
if($a>1){
$sum = bcmul($a, test($a-1)) ;
return $sum;
}
if($a == 1) { return $a ;}
}
echo test($a);
?>
这个问题会产生200000000000000000000000
结果 echo $sum
并返回错误的结果,但如果 iecho test()
然后return $sum
它倾向于正确的结果15511210043330985984000000
。为什么