PHPの文法チェックはこれ!構文エラーを簡単に回避する方法

PHPでプログラムを書いて動かしたら動かない!などということはよくあります。

出来上がったらすぐに動かしたくなりますが、落ち着いて次は文法のチェックです。

目視で確認する方法もありますが、ツールを使う事もおすすめです。

今回は文法チェックについて以下の内容でお話します。

【解説】文法のチェックの必要性
【実践】コマンドラインでチェック
【実践】xdebugでチェック

わかりやすく解説しますので、最後まで読んで頂けると幸いです。

文法チェックが必要な理由

悩んで書いたプログラム、すぐ動かしたいですよね。

しかし、動かすのは少し待ちましょう。

まずは文法チェックを行います。

文法をチェックしておかないとエラーが発生した時に正常に動作しないからです。

そしてエラーの発生原因を一つずつ潰さなければいけません。

文法チェックを一括で行っておけば、そのエラーは発生しない可能性もあります。

遠回りしているようで実は近道の場合もあるため、文法チェックは必ず行いましょう。


【なかなかエラーが解決できない…そんな悩みを解決します!】

登録無料で始められるプログラミングスクール「侍テラコヤ」

・回答率100%のQ&A掲示板でエラーを解決!
現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!

侍テラコヤについて詳しく見る

lintでチェックしよう

lintを使って静的にチェックします。

静的というのはプログラムを実行せずに、文法の記述方法だけをチェックする方法です。

その時に使用するのは、lintコマンドです。

※php_check_syntaxという文法チェック関数があったのですが、すでに廃止されていますので使用できません。

では実際にエラーの出るphpファイルを準備します。

□lint_test.php

<?php
echo "error"

画面にerrorという文言を表示させるだけのコードです。

lint_test.phpがあるディレクトリまで移動して以下のコマンドを発行します。

php -l lint_test.php

□実行結果

PHP Parse error:  syntax error, unexpected end of file, expecting ',' or ';' in lint_test.php on line 2

Parse error: syntax error, unexpected end of file, expecting ',' or ';' in lint_test.php on line 2
Errors parsing lint_test.php

syntax error = 構文エラーの指摘が出力されました。

【line 2】のように、エラーの行数も返してくれます。

unexpected end of fileとありますので、2行目に【;】がないのが原因です。

では、lint_test.phpを修正して、再度lintコマンドを発行してみます。

<?php
echo "error";

□実行結果

No syntax errors detected in lint_test.php

上記の表示になれば、文法エラーはないという事です。

lintを使った文法チェックについてご理解頂けたでしょうか。

xdebugでチェックしよう

前章では、静的に文法チェックを行う方法をご紹介しました。

本章では動的のエラーチェックのためにxdebugというツールを紹介します。

xdebugの設定

まず、xdebugを使用可能にします。

① xdebugを以下公式サイトからダウンロード、ダウンロードした.dllファイルを置いたローカル環境のパスをメモします。

https://xdebug.org/download.php

② php.iniに以下を追記します。

zend_extension = ★①でメモしたパス

② Webサーバ(Apacheなど)を再起動

以上で設定は完了です。

xdebugでエラーを確認する

それでは、前章で使用したlint_test.phpを実行してみます。

□lint_test.php

<?php
echo "error"

最後の【;】が足りていないのでエラーになるはずです。

■画面表示結果

内容はlintを実行した時と同じですが、装飾が付いて見やすくなりました。

またlintとの大きな違いは、コードを実行した結果のエラーなので動的なチェックによるエラーと言えます。


【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

まとめ

今回はPHPの文法チェックについてお話しました。

プログラムが完成した!と思っても安心せずにまずは静的に文法チェックをしましょう。

動かした後のエラー表示もツールを使う事をおすすめします。

それでは、また。

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

独学PG&SE、東京在住30代女性。
誰でもプログラマーになれるがモットーで、わかりやすい記事を目指しています。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close