【PHPエラー】Parse error: Invalid numeric literal in…の原因と解決方法
PHPはWebサイトを構築する際に使用されるプログラミング言語です。
PHPでは何かしら不具合があると処理を止めて英語でエラー文章を表示します。
プログラマはブラウザに表示されているエラーメッセージを手掛かりに原因となるプログラムエラーを修正します。
この記事ではそんなPHPのプログラムエラーの中でも時々見かけるParse error: Invalid numeric literal in...の原因と解決方法をご紹介したいと思います。
この記事の目次を表示
Parse error: Invalid numeric literal in…が発生する原因
まずは実際にParse error: Invalid numeric literal in...がどんなふうにエラーメッセージが表示されるか見てみましょう。
PHPのコードを以下のように書くとこのエラーが表示されます。
echo 08;
めちゃくちゃシンプルな記述、エラーがあるようには思えませんが。。。

Parse error: Invalid numeric literal in ●●● on line ■■■
このようにエラーメッセージが表示されます。
- ●●●:原因となるファイルがあるサーバーパス
- ■■■:その記述がある行数
そして、このParse error: Invalid numeric literal in...は8以上の数値を扱う際に発生する可能性があります。
7までは「07」のように頭に0を付けても数値として認識されますが、8以上の場合は「08」とするとプログラムエラーとなってしまうようです。
つまりこのエラーメッセージからは「●●●の■■■行目に数値の頭に0をつけている個所がある」ということがわかります。
Parse error: Invalid numeric literal in…の解決方法
ここからはParse error: Invalid numeric literal in...の解決方法をご紹介します。
数値の頭に0を付けない
このプログラムエラーは数値の頭に0を付けることで発生します。
そのため数値の頭に0を付けなければ発生することはありません。
// echo 08;
echo 8;
癖で数値の頭に0を付けてしまう人は不用意なプログラムエラーを未然に防ぐためにも数値の頭に0を付けるのは避けましょう。
頭の0を削除する
何かしらの値を変換した際やユーザーに値を入力してもらう際など、予期せず数値の頭に0が付いてしまうことも想定されます。
そのような場合は最初は文字列として扱い、途中で数値として変換して扱うことで自動で先頭の0が削除され、正しく数値として扱われるようになります。
$num = '08';
echo (int)$num + 10;
まとめ
いかがでしたか?Parse error: Invalid numeric literal in...は数値の扱い方を気を付けることで防ぐことが出来ます。
予期せぬプログラムエラーを起こさないためにも数値の扱い方には注意していきたいですね。











