エラー時に役立つ!PHPで構文チェックを行う方法【メンターが回答】

「PHPで構文チェックの方法、エラーの原因特定について」という質問にTechAcademyの現役エンジニアが解決方法を回答しています。PHPで便利なテストツールも合わせて紹介しています。ぜひ理解しておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

※TechAcademyに実際に寄せられた質問に現役エンジニアのメンターが回答しました。

 

田島悠介

質問に対して現役のエンジニアが回答していくシリーズだね!

大石ゆかり

今回はどういう質問でしょうか?

田島悠介

PHPで構文チェックの方法、エラーの原因特定についてだね!実際に回答してもらった内容を紹介するね!

大石ゆかり

お願いします!

質問

以下の構文チェックをするサービスを使ってsyntax errorを見つける以外に、これとは別でいいサイトはありますでしょうか?

https://jp.piliapp.com/php-syntax-check/

デバックをピンポイントで見つける方法や、もっとデバックの種類が特定しやすい、分かりやすいものがあれば、教えてもらいたいです。

また、下記のソースコードは短い構文で、エラーが出てしまうのですが、どこが間違っているのでしょうか?

構文チェックでも、no syntax errorと出ます。

 

該当のソースコード

<?php
  for ($i=1;$i>=1000;$i++){
    if($i>=501){
      break;
    }
    echo $i;
    echo'<br>';
  }
?>

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

メンターからの回答

ソースコードには構文の問題ありません。

プログラムの実行自体は問題なくおこなわれますが、該当のプログラムですと「$iが1000以上の場合にループを実行する」という条件になりますので、$iが1から始まるということは一度もループは実行されずに終了します。

もし1から1000までの値をループさせたいということでしたら、for文はfor ($i=1;$i>=1000;$i++)ではなく、for ($i=1;$i<=1000;$i++)のように不等号の向きを逆にしていただく必要があります。

こういったロジックの間違いは、構文チェックツールで見つけられるものではありません。

 

テストツールなどを利用して自動テストをおこない、想定している動作がおこなわれているかをチェックしていく必要があるかと思います。

PHPのテストツールには、PHPUnitやCucumberといったツールがありますので、下記のページなども参考に軽く、使いやすいツールを利用することをおすすめします。

https://www.webprofessional.jp/8-must-have-php-quality-assurance-tools/

 

以上、PHPで構文チェックを行う方法について解説しました。

TechAcademyでは、現役PHPエンジニアのメンターが質問にすぐ回答します。

 

回答してくれたメンター

赤司達彦(あかしたつひこ)

開発実績: 10年前からHTMLやCSSを利用しホームページやブログの作成を開始しプログラマへ。iPhoneアプリエンジニアとして業務に携わる経験も持ちながら、フリーランスでWordPressを利用したWebサイトやブログを構築。WordPressをこれから始める方に向けた書籍も刊行。

 

田島悠介

PHPで構文チェックの方法、エラーの原因特定について解説したよ。

大石ゆかり

1000以下の間処理させるはずなのに、1000以上の時にってなっていますね。これだと構文は正しいのでエラーは出ないですね。

田島悠介

そうそう。こういうミスはテストで動作させて確認したいね。

大石ゆかり

わかりました。ありがとうございます!

他にもHTMLファイルからPHPファイルを呼び出す方法についてメンターが回答しているので、合わせてご覧ください。

TechAcademyでは、オンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。