我有這樣一段PHP代碼:奇怪POW()PHP錯誤
$skill_amount = round(pow($rarity,1.25));
應當指出的是,$稀有從查詢得到。
我輸入值如0,2,4,8,16,32,64。
的是工作時間,但我的用戶上報鉅額值等少量多次99%:
13771,77936
什麼可能會導致這?
我有這樣一段PHP代碼:奇怪POW()PHP錯誤
$skill_amount = round(pow($rarity,1.25));
應當指出的是,$稀有從查詢得到。
我輸入值如0,2,4,8,16,32,64。
的是工作時間,但我的用戶上報鉅額值等少量多次99%:
13771,77936
什麼可能會導致這?
"What could possibly be causing this?"
$rarity
的較大值或意想不到的值。
如果你可以檢查所有可能的$稀少值,你應該這樣做。否則,你可以做一些基本的調試。
if ($skill_amount > some sane value) {
// log $skill_amount & $rarity to a file or email
// maybe also some other investigative values, like stuff that assisted the derivation of $rarity
}
謝謝你的聲音 –
在這個腳本中沒有發現任何問題,所以我同意需要對$稀少進行完整性檢查。
<?php // RAY_temp_amy_neville.php
error_reporting(E_ALL);
echo '<pre>';
$range = range(1, 4096);
foreach ($range as $rarity)
{
$skill_amount = round(pow($rarity,1.25));
$out[$rarity] = $skill_amount;
}
print_r($out);
當發生這種情況時,您是否知道$稀少的價值? pow()會將所有輸入轉換爲數字,如果$稀少將是別的東西,這可能會導致意外的輸出。 – Jesperhag
你確定'$稀少'總是一個標量和一個整數嗎?我可能會在該變量上添加一些驗證代碼以確保是這種情況。 PHP手冊有關於'pow'函數的註釋:_This函數將所有輸入轉換爲數字,甚至是非標量值,這可能會導致**怪異的**結果。_ –