PHPでの外部のPHPファイル読み込みは下記の方法があります。
- require
- include
- 名前空間
どれでも良いですが一般的なPHPプログラムではrequireがエラーが発生した際にちゃんと処理が止まるので主流になっています。Laravelでは名前空間によりファイル処理をする事が主流になっています。
require()
もしファイル読み込み時にエラーが発生したら読み込み処理が停止します。
読み込まれるファイル(common.php)
1 2 3 4 5 6 7 8 9 |
<?php $val = "変数"; function kansu(){ echo "関数"; } ?> |
読み込むファイル
1 2 3 4 5 6 7 8 |
require 'common.php'; echo $val; //変数 echo("<br>"); echo("<br>"); kansu(); //関数 |
include()
もしファイル読み込み時にエラーが発生したら読み込み処理が停止せずに警告が発生します。
階層が異なる場合
フォルダ階層が異なる場合は下記のように指定します。
階層が下がる場合
1 |
require 'common/common.php'; |
階層が上がる場合
1 |
require '../common/common.php'; |
requireとincludeのどちらが良いか?
後続処理に致命的な影響がある場合はrequire(トランザクションが要求されるバッチ処理など)、画面処理などその場でエラーが発生しても後続に影響がない場合はincludeを使うのが良いです。
画面とかだと少しエラーが発生したら再開が全くできなくなると困るということもあります。プロジェクトの用途を理解して使い分けましょう。
マジック定数
下記の定数を利用してファイルパスを記述することも可能です。その場合は絶対パス指定になるでしょう。
定数名 | 説明 |
---|---|
__DIR__ | 現在のファイルのフルパスを表示します。 |
__FILE__
|
現在のファイルパスをファイル名つきで表示します。 |
__LINE__ | ファイル上の現在の行番号。 |
__FUNCTION__ | 関数名。無名関数の場合はクロージャ |
__CLASS__ | クラス名。名前空間にクラスが含まれている場合は名前空間も含みます。 |
__TRAIT__ | トレイト名。名前空間に含まれている場合は名前空間の名前も含みます。 |
__METHOD__ | クラスのメソッド名 |
__NAMESPACE__ | 現在の名前空間の名前 |
ClassName::class | 完全修飾されたクラス名 |
この記事へのコメントはありません。