外部ファイルの読み込み!PHPのrequire文の使い方【初心者向け】現役エンジニアが解説
プログラミング初心者向けにPHPで書くrequire文の使い方について解説しています。外部ファイルをPHPファイルに読み込む際に便利な知識なので、ぜひ書きながら覚えていきましょう。すぐに理解できるはずです。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
PHPで書くrequire文の使い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
外部ファイルを読み込む際に知っておきたい知識でしょう。
include文と動作は同じですが、require文では、ファイルがない場合に処理を停止することが可能です。
実務でもrequire文を利用してライブラリを読み込むので、実際にソースコードを書きながら覚えていきましょう。
目次
そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。
田島メンター!Webサイトのヘッダーとかフッターとかって大体同じだと思うんですけど、ああいうのって毎回書かないといけないんですか?
よく使うものは1つのファイルに入れておいて、使いまわせるんだよ!
それはどうやってやるんですか?
じゃあ、require文っていうのを使って簡単に解説してみるね!
わぁ〜ありがとうございますっ!
requireとは
PHPにおけるrequireとは、「外部ファイルを読み込み、実行したい」ときに使われる文です。
プログラムを単一のファイルで書いていくと膨大な行数になり、コードが書きづらくなったりバグを発見しづらくなったりします。
そのため、ファイルを分けて書くことが重要になります。
ファイルを分けた際に使われるのがrequire文です。
また、他の人が作成したソースコードを読み込む際にも使われます。
require文の書き方
require文の書き方は、requireの後にPHPファイル名を指定します。
同じディレクトリの場合
ファイルのパスは、指定したファイルの位置(ディレクトリ)を示す値です。
ファイル名に関しては、実行するPHPファイルと同じディレクトリにある場合は、ファイル名だけを指定すればよいです。
具体的には、次の2種類の書き方があります。
()で囲まない方法
require "ファイルのパス";
“ファイルのパス”で指定したファイルをrequireします。
()で囲む方法
require("ファイルのパス");
(“ファイルのパス”)で指定したファイルをrequireします。
異なるディレクトリの場合
異なるディレクトリにファイルがある場合は、呼び出すファイルから読み込むファイルへ、正しくパスの指定を行う必要があります。
実行ファイル
test.phpが実行ファイルです。
実行したいtest.phpファイルがuserディレクトリにある場合を示しています。
test.phpのファイル位置を示す内容がパスです。
/home/user/test.php
読み込むファイル
test.phpと同じuserディレクトリの中にある、libディレクトリの中にtest2.phpが存在します。
/home/user/lib/test2.php
読み込む処理
test.phpからtest2.phpと同じuserディレクトリ内のlibディレクトリ以降を指定することで、test2.phpを読み込むことが可能です。
require "lib/test2.php";
require_once文
requireの処理と同様ですが、1回しか処理を読み込まないrequire_onceがあります。
require_onceでは、ファイルが読み込み済みかをチェックし、読み込み済みの場合は再度ファイルを読み込みません。
require_onceを利用する場合は、処理時に同じファイルが複数回読み込まれ、関数の再定義や変数の再代入の可能性を回避する目的で利用します。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
実際に書いてみよう
では、実際にプログラムを書いてみましょう。
ここでは/home/user/ディレクトリにあるtest.phpから、/home/user/lib/test2.php を呼び出して実行するプログラムを実装します。
サンプルコード(test.php)
<?php
//requireでtest2.phpを呼び出した瞬間に「オンラインプログラミングスクールは」が表示されます。
require("./testlib/test2.php");
// test2.phpで定義しているrun関数を呼び出すことができます。
run();
解説(test.php)
<?phpでは、PHPプログラムが開始されることを意味します。
require(“./testlib/test2.php”);では、test.phpからみた時に、同じディレクトリにあるtestlibディレクトリの中にある、test2.phpを読み込む指定をしています。
run();では、test2.phpにあるrun関数を実行しています。
サンプルコード(test2.php)
<?php
// test2.phpで呼び出されたときに笑います。
print("オンラインプログラミングスクールはn");
// test2.phpでrun関数を呼び出すと走ります。
function run(){
print("テックアカデミーがおすすめ!");
}
解説(test2.php)
<?phpでは、PHPプログラムが開始されることを意味します。
print(“オンラインプログラミングスクールはn”);では、オンラインプログラミングスクールはという文字列と、改行であるnを準備して、print関数で表示しています。
function run(){では、run関数を宣言しています。
print(“テックアカデミーがおすすめ!”);では、テックアカデミーがおすすめ!という文字列をprint関数で表示しています。
}では、run関数の宣言を終了しています。
require文で呼び出した瞬間に、test2.phpが実行されました。
つまり、test2.phpで書かれていたprint文が実行され、test2.phpで定義されていたrun関数を実行することができました。
外部ファイルを読み込む際に便利なので、ぜひ使い方を覚えておきましょう。
表示結果
おわりに
今回はrequre文を解説しました。
- require文の役割
- require文の書き方
- 同一ディレクトリと異なるディレクトリによるファイルパスの指定方法
それぞれの役割と基本的な使用方法を理解すると、PHPの理解につながります。
require文と似ているinclude文に関しては、PHPでinclude文を使う方法 を参考にしてみてください。
どう?なんとなくイメージできた?
HTMLのheadとかmetaとかの記述も大体一緒なので、使いまわせるってことですよね!?
まさに!!
執筆してくれたメンター
中本賢吾(なかもとけんご) アジマッチ有限会社 代表取締役社長開発実績:PHPフレームワークによるフランチャイズ企業向け会員制SNS。Shopifyによる海外進出用大規模ネットショップ構築。Vue.jsによる金融機関向け内部アプリ。AWSやLinuxハウジングサーバでの環境構築。人工知能を利用した画像判別システム。小売チェーン店舗用スマホアプリ。WordPressによる不動産チェーン店向け賃貸・売買仲介システム。基幹システム移管用データコンバートシステム。小学生がUnityでオリジナルAndroidアプリをGoogle Playでリリース、NHK Whyプログラミング入賞、全国Programming Festival入賞、中学生がノーコードでSNS型PWAアプリリリースなど、ボランティアプログラミング教育活動行っている。 |
PHPを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!