PHP5.3でnumber_format()がエラーになるときの対処
目次
何気なく会社のホームページを見ていたら以下のエラーが出るページに気づきました。
Warning:number_format() expects parameter 1 to be double, object given in /home/hoge/foo/bar.php on line 99
ここ数か月は特に更新をしていないページなのになんでだろう?と思っていたところ、そういえばレンタルサーバー会社からPHP5.2を終了し、5.3にバージョンアップするといったメールが届いていたの思い出しました。
number_format()のエラーを検索したらあっさり対処法が見つかりました。
$chinryo = number_format($alldata->data[$i]->chinryo);
に(int)を加えて
$chinryo = number_format((int)$alldata->data[$i]->chinryo);
とするだけでエラーが出なくなりました。
以下のサイトURLのページによると、エラーの原因はPHP5.3からnumber_formatを含むあらゆる関数に対して互換性のない値が渡されるとNULLを返すのが原因のようです。