PHPのuse, require, includeの違い
Table of Contents
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なのだが……勉強がまだ足りない。