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を返すのが原因のようです。