今天ytkah在調試項目的時候出現了一個警告warning: a non-numeric value encountered in line 694,查看php官方文檔,上面解釋說在使用(+ - * / ** % << >> | & ^) 運算時,例如a+b,如果a是開始一個數字值,但包含非數字字符(123a),b不是數字值開始時(b456),就會有A non-numeric value encountered警告。解決方法:對於這種問題,首先應該在代碼邏輯查看,為何會出現混合數值,檢查哪里出錯導致出現混合數值。對於(+ - * / ** % << >> | & ^) 的運算,我們也可以加入轉換類型方法,把錯誤的數值轉換。
第694行原來的代碼是
$second = round($match[6] + $match[7] / pow(10, strlen($match[7])));
把它改成
$second = round(intval($match[6]) + intval($match[7]) / pow(10, strlen($match[7])));
加入intval方法進行強制轉為數值型后,可以解決警告提示問題。
