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

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

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

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

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

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

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

目次

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

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

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

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

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

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

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

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

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の文法チェックについてお話しました。

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

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

それでは、また。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次