トップページ >  PHP >  requireとrequire_once
初版2013/05/23: 最終更新日2013/05/23
requireとrequire_once
目次
requireとrequire_once
requireとrequire_once
PHPではrequireとrequire_onceを使ってファイルを読み込むことができます。
requireは何度も読み込みますが、require_onceは一度しか読み込まないので、require_onceを勧めます。
以下、ソース例です。

<?php
    require "../common.php";
    require "/usr/local/apache2/htdocs/common.php";

    // 何らかの処理
?>

上記のように絶対パスと相対パスで読み込むことができます。このとき、php.iniの設定で、以下のようになっていると相対パスでエラーが発生します。

php.iniの設定
;allow_url_include = On

警告内容
Warning: main(../common.php): failed to open stream: No such file or directory

回避方法としては、php.iniのallow_url_include = Onのコメントをはずすか、それができない場合は、dirname(__FILE__)を使用します。
これを使用すると、phpファイルの絶対パスが取得できます(最後に/はつきません。)。以下、例です。

<?php
    require dirname(__FILE__) . "/../common.php";
    require "/usr/local/apache2/htdocs/common.php";

    // 何らかの処理
?>

require_onceするときは、絶対パスではなく、相対パスで記述すべきです。
開発環境と本番環境でディレクトリ構成が異なる場合、相対パスなら問題ありません。