PHPのuse, require, includeの違い

phpを触り始めて3年目。おそらく初めてrequire_onceを使った。これまでLaravelばかり使っていたので、あまり意識してこなかった部分だった。ここで、インポート系シンタックスをまとめておこうと思う。

インポート系シンタックス

他にもあったかもしれないけど、ひとまずこれを。

  • requireとrequire_once
  • includeとinclude_once
  • use

requireとrequire_once

requireは指定したファイルを読み込む。もしファイルを読み込めなかった場合は、Fatal Errorを発生する。require_onceを使用すると、既に読み込まれている場合は再読込みを行わない。再読込みが行われて、変数などが再定義されると困る場合は、require_onceを使う。

includeとinclude_once

includeは、指定したファイルを読み込むという点では、requireと同じ。ファイルが読み込めなかった場合は、警告を出すのみで、処理は継続する。include_onceを使用すると、既に読み込まれている場合は再読込みを行わない。用途はrequire_onceと同じ。

use

useは、指定した名前空間のクラスを参照できるようにする。参照したいクラスのnamespaceとクラス名を指定する。requireやincludeはファイルを指定するのに対して、useはクラス名、名前空間名を指定する。このあたりについては、別途勉強することにする。名前空間のサポートは、php 5.3から始まったらしい。

もはやphpは7なのだが……勉強がまだ足りない。

投稿者: sussan_0416

さいたま市に住む一児のエンジニア。出身は北海道札幌市、学生時代に過ごした函館が好き。仕事はiOS・Androidのスマホアプリ開発。前職では、広告配信を最適化する機械学習システムの開発(Python)、アドサーバのAPI(PHP)を担当。