なぜ __DIR__ ではなく、dirname(__FILE__) を使うのですか?
PHP5.3以降 → __DIR__ が使える
PHP5.2以前 → dirname(__FILE__) で代用するしかない
互換性を考える場合は後者が使われるでしょう。しかし、もう5.3ですら数週間後にサポートが終了します。5.2なんか太古の昔のものなので、前者を使っても全然構わないと思います。
なぜ __DIR__ ではなく、dirname(__FILE__) を使うのですか?お世話に... - Yahoo!知恵袋
仕事でないかぎり、特別な理由がない限り、__DIR__で良いと思います。
PHP5.2以前に急に対応しないといけなくなったら?
if( !defined( __DIR__ ) )define( __DIR__, dirname(__FILE__) );
未定義の時は、定義してあげるコードを書けばOKではないか?と思います。そのあたりを考慮して作成すれば、__DIR__で統一できるかと思います。
参考:PHP 5.2 Notice: Use of undefined constant __DIR__ - assumed '__DIR__ - Stack Overflow
そもそも、dirname(__FILE__)、__DIR__ ってなに?
__FILE__ ファイルのフルパスとファイル名 (シンボリックリンクを解決した後のもの)。 インクルードされるファイルの中で使用された場合、インクルードされるファイルの名前が返されます。
__DIR__ そのファイルの存在するディレクトリ。include の中で使用すると、 インクルードされるファイルの存在するディレクトリを返します。 つまり、これは dirname(__FILE__) と同じ意味です。 ルートディレクトリである場合を除き、ディレクトリ名の末尾にスラッシュはつきません。
PHP: 自動的に定義される定数 - Manual
・PHP: dirname - Manual
require_once dirname(__FILE__) . "/define.php";
require_once __DIR__ . '/define.php' ;
どちらも同じ意味です。
スポンサーリンク