我有一個bigint
類在php中,來計算大數字。除時間限制外,它運作良好。set_time_limit不起作用
我設置的時間限制與
set_time_limit(900);
我bigint.php文件
,並在本地主機的工作原理。 但在我的虛擬主機,當我試圖計算999^999,它產生的錯誤
Fatal error: Maximum execution time of 10 seconds exceeded in /home/vhosts/mysite.com/http/bigint/bigint.php on line 156
這是我的代碼:
public function Multiply_Digit($digit){ //class function of bigint
if($digit==0){$this->str="0";}
else
{
$len=$this->length();
$Result = new bigint("0");
$carry=0;
$current;
/*line 156:*/ for ($i = 0; $i < $len; $i++)
{
$current = $this->str[$len-$i-1] * $digit;
if ($i == 0) { $Result->str = ""+(($current + $carry) % 10); }
else{ $Result->str .= ""+(($current + $carry) % 10); }
$carry = (($current+$carry) - ($current+$carry)%10)/10;
}
$Result->str .= ""+$carry;
$Result->str = strrev($Result->str);
$Result->TrimLeadingZeros();
$this->str = $Result->str;//sacma oldu.
}//else. digit not zero
}//Multiply_Digit()
我試圖把set_time_limit(900);
在PHP文件的啓動以及類的構造函數,沒有工作。
我以爲這是一個會話問題,關閉我的瀏覽器並重新打開頁面,仍然需要10秒作爲時間限制。
我在這裏做錯了什麼?
是不是你的函數寫一個非常長的方式'pow($數字,$數字);'? – jeroen 2013-02-27 15:11:05
這只是bigint類中的一個函數。我無法找到一種支持超過20個字符的「數字」的PHP方式。 – marvin 2013-02-27 15:19:38
只是想我會提到它,因爲它可能會幫助您優化您的功能; PHP有很多數學函數包括:-) – jeroen 2013-02-27 15:21:56