我曾經在 php 8.1 之前曾經使用過這個公式
<?php $number = 0; echo log10(abs($number)) / 3 | 0; echo PHP_EOL; $number = 100; echo log10(abs($number)) / 3 | 0; echo PHP_EOL; $number = 1100; echo log10(abs($number)) / 3 | 0; echo PHP_EOL; $number = 10000000; echo log10(abs($number)) / 3 | 0; ?>
它工作得很好,但現在升級後我不斷收到這些錯誤
Deprecated: Implicit conversion from float -INF to int loses precision Deprecated: Implicit conversion from float 0.6666666666666666 to int loses precision Deprecated: Implicit conversion from float 1.0137975617194084 to int loses precision Deprecated: Implicit conversion from float 2.3333333333333335 to int loses precision
我無法從 8.1 文件中找到或理解為什麼現在會發生這種情況
當您透過
|
運算子執行位元 OR 運算時,您將獲得到整數的隱式轉換。這是一種……奇怪的……轉換為整數的方式。要避免警告,只需顯式轉換即可。隱式:
明確通過函數:
或透過演員表: