【PHP入門】includeの使い方とrequireとの違いを解説

・PHPのincludeって何?
・共通の処理を分解して、それを外部ファイルとして読み込みたいけど、やり方がわからない・・・。
・requireとの違いは?

PHPのincludeは、外部ファイルを読み込むことができますが、正しい使い方やrequireとの違いを知らない人も多いでしょう。

そこでこの記事では、PHPのincludeの使い方やrequireとの違いについて詳しく解説します!

この記事を読めば、includeで正しく外部ファイルを読み込む方法やrequireとの違い、include_onceやrequire_onceとの使い分け方を理解することができるでしょう。

PHPで外部ファイルを読み込みたいけど、includeの使い方がわからない、requireとどうやって使い分ければいいかわからない人は、ぜひ最後までご覧ください。

includeとは

includeとは、外部ファイルを読み込むことができるものです。

例えば、1つのファイルに処理をたくさん書いていると、処理が複雑になっていき、コードが見づらくなってしまいます。

そこでincludeを使えば、共通化できる処理を分解して、外部ファイルとして読み込むということができるのです。

includeを使うと、

  • ・同じ処理を何度も書く必要がない
  • ・修正がある場合は、1つのファイルを修正するだけで良い
  • ・コードが見やすくなる

というようなメリットがあります。

では、そのincludeをどうやって使うのか、具体的な使い方を次の項目で見ていきましょう。

includeの使い方

共通化したファイルを外部ファイルとして読み込むことができるincludeですが、使い方がいまいちわからないという人もいるでしょう。

なのでここでは、includeの使い方について詳しく解説していきます。

includeの基本的な使い方

includeの基本的な使い方は次の通り。

includeは()括弧の中にシングルクォーテーションまたはダブルクォーテーションで囲って、外部ファイル名を記述します。

ちなみに、()括弧を使わない書き方もあります。

includeは、()括弧を使っても使わなくても、どちらでも外部ファイルを読み込むことができるので、使いやすい方を選ぶといいでしょう。

※この記事では、()括弧を使う方で解説していきます。

では、実際にコードに書いて、使い方を学んでいきましょう。

■index.php

まず、上記のように「index.php」を用意します。

中身は簡単に、headerとdivを作り、見出しと文章を入れておきます。(任意で要素を増やしても構いません)

では、ここからファイルを分解していきましょう。

index.phpと同じディレクトリに「header.php」というファイルを作成します。

そして、index.php内で「外部ファイルとして読み込む」と書かれた範囲をコピーし、header.phpに貼り付けてください。

■header.php

これで、ファイルの分解ができましたので、index.phpでheader.phpを読み込みましょう。

index.phpで「外部ファイルとして読み込む」と書かれた範囲に、PHPの処理を書いていきます。

■index.php

PHPの処理は、includeに「./header.php」を指定するだけです。

これで、index.phpに外部ファイルのheader.phpを読み込むことができます。

結果を表示して、確認してみましょう。

index.phpファイルを表示すると、header.phpの部分もきちんと表示されていますね。

Chromeのデベロッパーツールで確認してみると、わかりやすいでしょう。

htmlタグの開始から、headerタグの終わりまで、しっかりコードとして読み込まれていますね。

このように、includeを使えば、分解した外部ファイルを簡単に読み込むことができます。

PHPファイルのコードが複雑なときや、共通化したい処理がある場合は、なるべくファイルを分解して、外部ファイルとして読み込むと、コードも見やすくなり、ファイルの管理がしやすくなります。

なので、使い方を覚えておくといいでしょう。

HTMLファイルを読み込むこともできる

先ほどの解説では、includeを使ってphpファイルを読み込みました。

ですが、htmlファイルでも読み込むことができます。

■index.html

例えば、上記のようなhtmlファイルがあったとします。

そして、同じディレクトリに「main.php」というphpファイルを作成します。

■main.php

main.phpのファイルには、includeで「./index.html」と指定してみます。

結果を表示すると、次のようになるでしょう。

main.phpにindex.htmlの内容が表示されていますね。

これによって、includeはhtmlファイルも読み込むことができるということがわかりました。

includeは、様々なファイルを読み込むことができる、便利なものであると言えますね。

【PHP入門】よくわかるinclude(インクルード)の使い方!
【PHP入門】よくわかるinclude(インクルード)の使い方!
HPを作る際、同じパーツを使いまわしたいことは有りませんか? PHPには、外部ファイルを読み込める「inclu ...

requireとの違い

ここまで、includeの使い方について解説しました。

そこで、中には「同じ働きを持つrequireとは、どういった違いがあるのだろう・・・。」と疑問に思った人もいるでしょう。

実は、PHPでは外部ファイルを読み込むものでincludeの他にrequireというものがあります。

requireも働きとしては同じで、分解したファイルを外部ファイルとして読み込むことができます。

では、includeとはどういった違いがあるのか。

結論から言うと、存在しないファイルを読み込んだ際の動作に違いがあります。

■存在しないファイルを読み込んだ際のincludeとrequireの動作の違い

  • ・include:includeの処理部分は停止されるが、その後の処理は実行される
  • ・require:その場でエラーになり、その後の処理も停止される

存在しないファイルを読み込もうとした際、includeの場合は読み込みの処理が停止されるものの、その後の処理は実行されてしまいます。

一方で、requireの場合はファイルの読み込み処理が停止されて、その後の処理もすべて停止されます。

実際のコードで書いて、動作を確認した方が理解しやすいと思うので、コードに書いていきましょう。

■includeを使った場合

PHPのエラーメッセージを表示できるように、ini_set関数の第1引数に「display_errors」、第2引数に「1」と指定します。(第2引数に「0」を指定すると、エラー表示なしということになります)

そして、includeには存在しないファイル(test.php)を指定してみましょう。

ファイル読み込み後の動作を確認したいので、echoで文字列を出力し、表示されるのかどうか試してみます。

結果を表示すると、次のようになるでしょう。

上記のように、「ファイルが見つかりません」というエラーメッセージが表示されていますが、その後に「Hello PHP」という文字列が出力されていますね。

このことから、includeは存在しないファイルを読み込んだ場合、読み込み処理は警告が出て停止されますが、その後の処理はいつも通り行われていることがわかります。

では、requireを使った場合はどうなるのでしょうか?

■requireを使った場合

先ほどと同じコードで、includeと書いてあった部分をrequireに書き換えます。

結果を表示してみると、次のようになります。

上記のように、エラーメッセージが表示されました。

そして、その後のechoの処理も停止され、「Hello PHP」という文字列は表示されていませんね。

このことから、requireは存在しないファイルを読み込んだ場合、読み込み処理はエラーによって停止され、その後の処理もすべて停止されることがわかります。

このように、外部ファイルを読み込むことができるincludeとrequireには、読み込む際の動作に違いがあるのです。

requireを使用した場合は、読み込みに失敗した時点で処理を停止してくれるので、ミスをしても気づきやすいと言えますね。

よって、確実に読み込む必要がある重要なファイルを読み込ませる場合require、そうでない場合(通常のHTMLファイルやテキスト)はincludeというように使い分けるといいでしょう。

また、先ほど少し触れたPHPのエラー表示について詳しく知りたい人は、以下をご覧ください。

【初心者向け】PHPのエラーを確認する方法!
【初心者向け】PHPのエラーを確認する方法!
PHPを学ぶ上で、付きまとうのが「エラー」ですよね。 ですが、初心者にとってエラーの内容を調べるのも大変ですよ ...

include_onceやrequire_onceとの使い分け

includeとrequireの使い方や違いがわかり、正しく外部ファイルを読み込めるようになりました。

ですが、このincludeとrequireには、それぞれinclude_oncerequire_onceといったものもあります。

では「_once」がついている場合とついていない場合には、どういった違いがあるのかと言うと、

include_onceやrequire_onceは、「同じファイルが読み込まれた場合、1度しか処理ができない」という働きがあります。

つまり、includeやrequireは同じファイルを複数回処理できるのに対し、include_onceやrequire_onceは同じファイルを1度しか処理できないということです。

実際のコードで、どのような結果になるのか見てみましょう。

■includeで同じファイルを読み込んだ場合

上記のように、includeで「./header.php」のファイルを2回読み込んでみます。

すると、結果は次のようになるでしょう。

header.phpの部分が2度表示されているのがわかりますね。

Chromeのデベロッパーツールで確認してみてもheaderの部分が2つ存在します。

では、include_onceを使った場合はどうなるのでしょうか。

■include_onceで同じファイルを読み込んだ場合

先ほどと同じように、「./header.php」のファイルを2回読み込んでみます。

そして、includeだったところをinclude_onceに書き換えます。

すると、結果は次のようになるでしょう。

header.phpの部分が1つしか表示されていません。

Chromeのデベロッパーツールで確認してみても、同様の結果です。

よって、include_onceを使って同じファイルを読み込んでも、1度しか処理ができないということがわかりました。

ちなみに、requireとrequire_onceを使った場合も同じ結果になります。

なので、同じファイルを2度以上読み込ませたい場合は、includeやrequireを使った方が良いということですね。

このように、外部ファイルを読み込ませる場合によって、どれが最適なのか考えてから使うようにするといいでしょう。

まとめ

今回は、PHPのincludeの使い方やrequireとの違いについて解説しました。

PHPでは、共通化できる処理を分解して、それを外部ファイルとして読み込むためにincludeやrequireなどが使われます。

includeとrequireは、存在しないファイルを読み込む際の動作に違いがあるので、確実に読み込まなければならないファイルにはrequireを、そうでないファイルにはincludeを使うといいでしょう。

この記事がPHPの学習に役立つと幸いです。