Warning: A non-numeric value encountered in XXX on line 694がサイトに表示される場合の対処方法

wordpressWordPress
スポンサーリンク

PHPなんて書いたことないのに調子に乗ってググってコピペでPHP組んでサイトを作ったら案の定なんかエラー出てる…意外と対応は簡単だったのでまとめてみました。

スポンサーリンク

Warning: A non-numeric value encountered

出逢っちゃいましたか!冒頭の下の通り、PHPなんて書いたことないのに、なんかインタラクティブなサイトを作ろうとまとめサイト作ってみました。

2ch5chまとめまとめ
RSSリーダーアプリってなんか使いにくいので、巡回サイトをまとめてみました。 痛いニュース(ノ∀`) はてなブックマーク-人気エントリー アルファルファモザイク ニュー速クオリティ ハムスター速報 らばQ ...

まー何というか、正直自分の巡回用がメインなんですけど。いいじゃないですか、チャレンジ。でも案の定エラーが出たわけです。

Warning: A non-numeric value encountered in /wp-includes/SimplePie/Parse/Date.php on line 694

何となく、「変数が数値の型じゃねぇぞ!」って怒られている感じ。型意識せずに使ってるとよく出ますよねー。

でも今回は自分が組んだコードの場所じゃないみたい。ご丁寧にエラーコードが自分のサイトにぶベーんって貼られてるからデバッグが楽だよねー(やけくそ)

エラーへの対応方法

わざわざデバッグ用にコンソールに出力しなくても自分のサイトにバチーんと書かれてる内容を見ると、もうどのファイルのどこの行でエラーが発生してるか書かれています。

まずは該当ファイルへ。

自分はさくらサーバをレンタルしてますので、さくらのコントロールパネルに行きます。

レンタルサーバ コントロールパネル

んで、ファイルマネージャから辿っていって、該当の「Date.php」ファイルを開きます。

Date PHP

次は問題のコードの修正

$second = round($match[6] + $match[7] / pow(10, strlen($match[7])));

該当コードがこれ。文字列として扱われているからround関数で怒られているんでしょう。

数値として型変換すればOK。配列の前に「int」を入れて整数型にしましょう。

$second = round((int)$match[6] + (int)$match[7] / pow(10, strlen((int)$match[7])));

よし問題なし!

まとめ

何でしょうね、このやってみると必ずつまづく感じ。でもそれが人を成長させるってもんです。

それにしてもPHPって便利ですね。WordPressやる上でとても助かりそうなのでもっと勉強しようかなー。

WordPress
スポンサーリンク
ntwmachineをフォローする
ブログサークル
ブログにフォーカスしたコミュニティーサービス(SNS)。同じ趣味の仲間とつながろう!
ブログサークル
ブログにフォーカスしたコミュニティーサービス(SNS)。同じ趣味の仲間とつながろう!
日々機械的に考える

コメント

タイトルとURLをコピーしました