[PHP-users 22495]Re: include_pathのカレントディレクトリについて

Yuya Nishihara puro @ bf7.so-net.ne.jp
2004年 7月 4日 (日) 19:43:13 JST


  西原といいます。はじめまして。

> require 'Test/formCreatorTest.php'とかすると(Testはサブディレクトリ)
> Fatal error: Failed opening  required 'Test/formCreateorTest.php' 
> (include_path='.:/usr/lib/php/php')  

  実行時のカレントディレクトリが別なのでは?

  PHP の include, require 等は, そのスクリプトの置いてあるディレクトリではなく, 
実行時のカレントディレクトリを基準に考えなければなりません。残念ながら。

  例えば, 

    /main.php
    /src/ClassA.php
    /src/AbstractClassA.php

という構成で, ClassA.php から AbstractClassA.php を 読み込むときは, おそらく,

    require_once 'src/AbstractClassA.php';

となります。(main.php を実行していて, カレントディレクトリがそこだと仮定。)
  ただし, これだと汎用的じゃないので, 

    require_once dirname(__FILE__) . '/AbstractClassA.php';
                                       // '/'(スラッシュ) を忘れずに!
としたほうがいいと思います。

  私はこれで1日無駄にしました。


--
Yuya Nishihara


PHP-users メーリングリストの案内