JavaScript などと同様に、PHP でも外部のファイルを取り込むことができます。
他の PHP プログラムと共通で使えるような定数や関数、コードなどを読み込むようにしておくと、
管理なども楽になります。
外部ファイルの利用(require, include)
ファイルを取り込むには、「require」「include」の 2 種類を使うことができます。
また、それぞれ「require_once」「include_once」の派生関数があります。
外部ファイルを取り込む構文
require "ファイルパス";
include "ファイルパス";
require_once "ファイルパス";
include_once "ファイルパス";
4つの取り込み文には、以下のような動作の違いがあります。
取り込み関数 | 動作 |
require | 取り込むファイルが存在しない場合は、PHP プログラムを停止 |
include | 取り込むファイルが存在しない場合でも、PHP プログラムを続行 |
require_once | 取り込むファイルが存在しない場合は、PHP プログラムを停止 何度呼び出しても、取り込みは1度のみ |
include_once | 取り込むファイルが存在しない場合でも、PHP プログラムを続行 何度呼び出しても、取り込みは1度のみ |
取り込むファイルの置き場所
require や include で読み込むファイルは、php.ini の include_path で設定された場所に置く必要があります。
include_path のデフォルトは、呼び出し元のプログラムと同じ場所(カレントディレクトリ)ですが、
場所を変えたい場合、php.ini の include_path を変更する必要があります。
1 2 3 4 5 6 7 8 9 10 |
;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" |
ポイント
設定を変更する場合は、行頭にあるセミコロン「;」を削除して変更します。
※php.ini ファイル内でセミコロンから始まる行は、コメントとみなされます。
外部ファイルを取り込むサンプル(require, include)
実際に外部ファイルを取り込むサンプルを紹介いたします。
今回は、外部ファイルである sample.php と、取り込む PHP アプリ index.php は、
同じディレクトリに配置されているものとします。
1 2 3 4 5 6 |
<?php for ($i = 0; $i < 3; $i++) { echo "これは外部ファイルです<br />"; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<html> <head> <title>PHP require,include を使った外部ファイルの取り込み</title> </head> <body> <?php echo "requireの例<br />"; require "sample.php"; echo "includeの例<br />"; include "sample.php"; ?> </body> </html> |
実行結果
requireの例
これは外部ファイルです
これは外部ファイルです
これは外部ファイルです
includeの例
これは外部ファイルです
これは外部ファイルです
これは外部ファイルです
参考
繰り返し処理を行う for 文については「ループ処理(while文、for文)」にまとめています。
ポイント
外部ファイルは、用途別に分けると便利
- 定数を定義する外部ファイル
- 共通関数(tools, utils 等)を定義する外部ファイル
- 共通クラスを定義する外部ファイル