私はコードベースを調べています。これは行の1つです。
require_once( dirname(__FILE__) . '/a_script.php' );
私はそれを次のように書き直すことを考えています:
require_once( './a_script.php' );
これらの2行のコードは何か違いがありますか?
私はコードベースを調べています。これは行の1つです。
require_once( dirname(__FILE__) . '/a_script.php' );
私はそれを次のように書き直すことを考えています:
require_once( './a_script.php' );
これらの2行のコードは何か違いがありますか?
はい、違います。2つ目は、作業ディレクトリに関連しています。これは、現在実行中のファイルが存在するディレクトリと常に同じであるとは限りません。
ほとんどの場合、作業ディレクトリは元のファイルのディレクトリです。別のファイルに含まれているファイルでrequire_onceを実行している場合、パスは最初のファイルからの相対パスです。
彼らはいくつかの異なる
// '/dir/index.php'
require_once( dirname(__FILE__) . '/script.php' ); // '/dir/script.php'
require_once( './script.php' ); // '/dir/script.php'
chdir('/')
require_once( dirname(__FILE__) . '/script.php' ); // '/dir/script.php'
require_once( './script.php' ); // '/script.php'