使用PHP 5.3.5版 我疯了。 这段代码给了我很多时间。在我刷新Apache的页面几次后,我得到了奇怪的结果。我想我这里有内存泄漏,但我找不到原因。 请帮忙!
<?php
function ost($active_sub_time,$arr_subscription_values)
{
$result=0;
while($active_sub_time>=12)
{
$active_sub_time-=12;
$result+=($arr_subscription_values['COST_12']);
}
while($active_sub_time>=6)
{
$active_sub_time-=6;
$result+=($arr_subscription_values['COST_6']);
}
while($active_sub_time>=3)
{
$active_sub_time-=3;
$result+=($arr_subscription_values['COST_3']);
}
while($active_sub_time>=1)
{
$active_sub_time-=1;
$result+=($arr_subscription_values['COST_1']);
}
if($active_sub_time>0)
$result+=($active_sub_time)*($arr_subscription_values['COST_1']);
if (!is_numeric($result))
{
echo"<br> Bug occurred";break; // print other values if necessary
}
return $result;
}
$datetime1 = date_create('2009-01-11');
$datetime2 = date_create('2001-11-09');
$interval = date_diff($datetime1, $datetime2);
$num_of_months = ($interval->y)*12 + ($interval->m) + ($interval->d)/(cal_days_in_month(CAL_GREGORIAN, $datetime2->format("m"), $datetime2->format("Y")));
$v = array('COST_1'=>'3.99','COST_3'=>'9.99','COST_6'=>'15.99','COST_12'=>'24.99');
echo "OPT value for $num_of_months months=".ost($num_of_months,$v);
?>
我最初得到这个结果:
OPT value for 86.066666666667 months=183.176
但经过几次刷新后我得到了这个:
OPT value for G.GMMMMMMMMMMMN months=183.176
有谁知道这是为什么? 感谢
答案 0 :(得分:0)
无法重现,我完全使用了你的代码,并多次执行它。它显示相同的结果。
您的服务器可能存在问题,或者一遍又一遍地混合刷新会导致某种问题或内存限制。
检查你的php.ini,看看你的内存限制是设置得太低,还是最大请求?