我正在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。为什么