別のPHPファイルを読み込む方法っていくつかあるけど違いは?

PHPでプログラミングをしているとき、1つのPHPファイルで1つの処理をするわけではありません。

MVCモデルが基本ですし、Cの中から別のCの部品になるPHPを実行したりもします。

そうしたほうが同じ処理をいくつも書かずに使いまわしてプログラミングの作業を効率化できます。

 

ただこの外部のPHPファイルを読み込む方法が4つあります。

  • require
  • require_once
  • include
  • include_once

これらの違いはなんでしょうか?

requireとinclude

requireとincludeの違いは、Fatalエラーになるかならないかです。

PHPはコンセプトなのかエラーが発生してもあまり途中で処理が止まらないです。

Javaとかならちょっとミスっただけでもう次の処理はしません。

 

エラー時に途中で処理が止まらないことが良い事か悪い事かは置いといて、PHPにも処理が続行できないエラーもあります。

それがFatalエラーです。

 

requireやrequire_onceを使った場合、読み込むファイルが存在しなければFatalエラーになり、それ以降の処理はされません。

includeやinclude_onceはFatalエラーにならずに、以降は続行されます。

_onceありなし

_onceのありなしの違いは、何度も読み込めるかどうかです。

_onceのありは1度しか読み込めません。

 

例えば以下のようなPHPがあったとします。

ファイル名はaiueo.phpとしましょう。

そしてaiueo.phpをrequireで読み込みます。

実行結果は次のようになります。

何度も「あいうえお」が出力されています。

 

ではrequire_onceを使ったらどうでしょう?

実行結果は次のようになります。

1度しか実行されていないことが分かります。

 

requireで実験しましたが、includeでも同じです。

まとめ

外部のPHPファイルを読み込む方法は、次の4つがあります。

  • require
  • require_once
  • include
  • include_once

まあでもぶっちゃけ、読み込むファイルが無い状態とか普通作らないですし、何度も読み込むような作りもナンセンスだと思います。

なのでどれ使っても同じだと思います。

まあでもバグったとき後続の処理で変な風にDBを更新されたりしても嫌なので、require_onceが一番無難かもしれないです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA