PHP講座入門

制御構造 ファイル読込

include require

 プログラムを作っていると、定数や変数、関数(後程出てきます)を一つのファイルにしておいて、後で別のプログラムから参照したいということが出てきます。

 そんな時に使うのがこの includerequire です。この二つの文は双子のようにほとんど同じ役割をしますが、ちょっとだけちがいます。

 include読み込みに失敗すると、警告を出すだけで処理を続けますrequire読み込みに失敗すると、致命的なエラーが発生し処理がそこでストップします

 しかし、読み込みに失敗するということ自体バグの可能性が強いので、初心者の方は require を使った方がいいと思います。

 

 また、ファイルの指定方法は、絶対パスや相対パスを使うことができます。Windowsですと、C:\Users\hoge\aaa.php..\common\aaa.phpという風に指定できます。また、スラッシュを使うと同じ意味になります。../common/aaa.php のようにします。こちらはMacでもLinuxでも使えますので、この方法をお勧めします。

 また、絶対パスは汎用性が著しく下がるので、相対パスで記述するようになさってください。その時、requireが書かれているファイルから見て相対的な位置になりますので、お間違えのないようになさってください

 

 文法は次の通りです。

include '読み込むファイル名'; require '読み込むファイル名';

 括弧がいらない、ということに注意してください。では実例を見てみましょう。

<?php
// inc.php
$a = 123;
$name = 'わたしの名前は佐藤です';
<?php
// test.php
require 'inc.php';

echo $a . '/' . $name;

 結果は

123/わたしの名前は佐藤です

 となります。

include_once require_once

 構造が複雑になってくると、あちこちで require を使ってしまったりして、効率が悪くなります。

 それを防止するのが、この include_oncerequire_once です。

 これは、指定したファイルはどこで読まれたとしても、一度しか読み込みを行ないません。例を見てみましょう。

<?php
// inc_a.php
require_once 'inc_b.php';

$a = 456;
<?php
// inc_b.php
$a = 123;
$name = 'わたしの名前は佐藤です';
<?php
// test.php
require 'inc_a.php';

echo $a . '/' . $name . '<br>';

require_once 'inc_b.php'; // 読み込まれません。

echo $a . '/' . $name . '<br>';

 結果は

456/わたしの名前は佐藤です
456/わたしの名前は佐藤です

 となります。test.phpの7行目の require_oncerequire に変えると、次のように出力されます。

456/わたしの名前は佐藤です
123/わたしの名前は佐藤です

 さて、制御構造は他にもあるのですが、それは次の関数の中で使いますので、その時にお教えしますね。

目次

×