コードの品質があがる!PHPのlintの使用方法を最短理解

50種類以上のIT教材を無料で使える!
0円から学習できるオンラインITスクール「侍テラコヤ」
→さっそく登録する

こんにちは!独学プログラマー&ライターのつぶらやです。

PHPでプログラムを書いて、いざ動かそうとした時にエラーとなって動かないという経験は誰にでもあります。

本日はプログラムを動かす前に構文チェックをする以下のような方法についてお話したいと思います。

・構文チェックはなぜ必要?
・lintを使ってコマンドラインからチェックする方法
・runkit_lint関数を使ってコードを直接チェックする方法

それでは説明していきます。

構文チェックはなぜ必要?

まず、構文チェックはなぜ必要なのでしょうか。

例えば以下のようなコードは構文エラー(シンタックスエラー)となり動作しません。

test1.php
<?php
    $i = 1; // $iに1を代入
    if($i == 1){ // $iが1だった場合という判定をしたい
        echo "さむらい";
?>
理由はifを閉じるための}がないからです。

正しくは以下です。

test2.php
<?php
    $i = 1; // $iに1を代入
    if($i == 1){ // $iが1だった場合という判定をしたい
        echo "さむらい";
    }
?>

プログラムには書くためのルールがあります。

きちんと記述したと思っていても大量のコードを書くと知らない内にミスをしている場合もあります。

事前にチェックしておく事によって実行した時のエラーを防ぐことが出来るのです。

構文チェックが必要な理由はお分かりいただけましたでしょうか。

それでは続いて、構文チェックのためのコマンドや関数の使い方を解説します。


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

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

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

さっそく診断してみる

コマンドラインからチェック(lint)

コマンドラインからチェックできるという事は、phpファイルを丸ごとチェックできるという事です。

チェックのためだけに関数をコードの中に書き入れる必要はありません。

コマンドラインについてよくわからない方は以下の記事を参考にしてください。

【PHP入門】外部コマンドの実行(exec)とコマンドライン実行の方法
更新日:2023年3月21日

エラーチェック方法

前章で使用したtest1.phpを使用して、コマンドラインでチェックしてみましょう。

test1.php
<?php
    $i = 1;
    if($i == 1){
        echo "さむらい";
?>

以下の様にコマンドを発行します。

php -l test1.php
結果
PHP Parse error:  syntax error, unexpected end of file in test1.php on line 5
Errors parsing test1.php

上記のエラーが出ました。

間違っている行数も【on line 5】のように出るのでわかりやすいですね。

慣れてくると大丈夫だろうと構文のチェックが面倒で未チェックで実行したくなると思います。

ぐっとこらえて構文チェックを行ってください。

どんな慣れた人でもミスは起こります。

エラーの修正

構文チェックをしてエラーがわかったら修正して再度チェックをしましょう。

前章で使用したtest1.phpを修正したtest2.phpを使用して、コマンドラインでチェックしてみましょう。

test2.php
<?php
    $i = 1;
    if($i == 1){
        echo "さむらい";
    }
?>

以下の様にコマンドを発行します。

php -l test2.php
結果
No syntax errors detected in test2.php

このような表示になれば構文エラーはないという事です。

コードを直接チェック(runkit_lint)

続いて、PHPのコードの中でチェックできるrunkit_lintという関数があります。

この関数はPECL(ピクル)というPHP用のライブラリが入っていないと使用することが出来ません。

またスレッドセーフを有効にしておく必要があり、特別な環境でしか使用できません。

こちらの記事では公式のページの紹介のみにさせて頂きます。

http://php.net/manual/ja/function.runkit-lint.php

コードの中で、一部分だけチェックという時に使用できると思います。

興味のある方は環境を準備して試してみてください。


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

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

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

さっそく診断してみる

まとめ

本日はPHPの構文エラーのチェック方法についてお話しました。

今回は簡単な構文チェックのみを検出する方法でしたが、IDE(統合開発環境)を使用するともっと細かくチェックできます。

構文エラーはもちろんの事、記述されている変数が使用されているかどうかも判定してくれたりします。

他にもプログラムのチェックのためのツールがあります。

興味があればネットで検索してみてください。

それでは、また。

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

SAMURAI TERAKOYA

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

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

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

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

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

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

SAMURAI ENGINEER Pro

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

詳細はこちら

SAMURAI TERAKOYA

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

詳細はこちら

SAMURAI ENGINEER Freelance

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

詳細はこちら
Close