読者です 読者をやめる 読者になる 読者になる

サーバー構築メモ

サーバーを構築したりWEBサイトを作ったりした際の個人的な備忘録です

PHP 外部ファイルを読み込む

「main.php」に外部ファイル「sub.php」を読み込む方法と、その振る舞いの違いについて。

require文(include文)を使って読み込む

「sub.php」

<?php
$message = 'Hello, My HomePage!';
?>

「main.php」

<?php
$message = '';
require('sub.php'); //include('sub.php');でも可
echo $message;
?>

「出力結果」

Hello, My HomePage!

require_once文(include_once文)を使って一度だけ読み込む

「sub.php」

<?php
$counter++;
?>

「main.php」

<?php
$counter = 0;
require_once('sub.php'); //include_once('sub.php');でも可
require_once('sub.php');
require_once('sub.php');
echo 'counter = ' . $counter;
?>

「出力結果」

counter = 1;

2度目以降のrequire_once文は無視される。

require_once文の代わりにrequire文を使うと、出力結果は「counter = 3」になる。

存在しない外部ファイルをrequire文とinclude文を使って読み込む

require文の場合

「main.php」

<?php
echo 'step1<br />';
require('sub2.php'); //sub2.phpは存在しないファイル
echo 'step2';
?>

「出力結果」

step1
Fatal error: main() [function.require]: Failed opening required……

require文で読み込みに失敗すると、エラーとなり処理はそこで停止する。

include文の場合

「main.php」

<?php
echo 'step1<br />';
include('sub2.php'); //sub2.phpは存在しないファイル
echo 'step2';
?>

「出力結果」

step1
Warning: main() [function.include]: Failed opening……
step2

include文で読み込みに失敗すると、警告を出して処理は続行する。