私は最近 PHP を勉強していますが、.NET と比較するのが好きです。違いの 1 つは他のファイル内のオブジェクトの参照の問題であることがわかりました。 Java にはパッケージという概念があり、.NET には DLL アセンブリ参照というより便利な概念があることがわかっています。パッケージ化された形式で結合されたオブジェクトのコレクションを通じて、独自のクラス内の他のオブジェクトや、クラスで定義された他のオブジェクトを簡単に参照できます。他の場所にもありますが、PHP には対応する概念がないため、他のファイルで定義されたオブジェクトを参照する必要がある場合、PHP プログラマが最もよく使用する 2 つの関数は require_once と include です。これらの 2 つの関数を通じて、定義されたクラスなどのオブジェクトを使用できます。他のクラスライブラリでも。しかし、多くの人が同じディレクトリに他のファイルをインクルードする場合、単に次のコードを使用してファイルを参照します。
include('include.php');
もちろん、この方法には何も問題はありませんが、効率的ではありません。効率の点では、次のメソッドよりわずかに劣ります:
include(realpath(dirname(_FILE_)).DIRECTORY_SEPARATOR.'include.php');
このメソッドではさらに多くの入力が必要になる可能性がありますが、前のバージョン (PHP が必要) エンジンは include_path を反復処理し、「include.php」という名前のすべての名前を検索して、対応するオブジェクトを見つけます。 dirname (__FILE__) のような絶対パスを指定すると、システムは対応するファイルをすばやく見つけることができます。
PHP の定数 __FILE__ は、実際には C# の AppDomain.CurrentDomain.BaseDirectory に非常に似ており、現在実行されているコードが配置されているファイルの絶対パスを返します。関数 dirname() は、その親フォルダーのパスを返します。
より効率的で簡単に記述するもう 1 つの方法は include('./include.php') です。これは、現在のパスで 'include.php' ファイルを見つけるようにシステムに指示するのと同じです。
大規模なシステムでは、次のコードをルーティング ファイルまたはその他の初期化ファイルに追加することがよくあります。これは、次のコードを与えるのと同じです。システムは、システムのルート ディレクトリを指すグローバル変数を追加しました。後で特定のパスにあるファイルを参照する必要がある場合は、次のコードを使用できます:
include(APP_PATH.DIRECTORY_SEPARATOR.'models'.'User.php') ) ; この小さな概要がお役に立てば幸いです。
注: PHP 5.3 以降に Phar の新機能があることを発見しました。これは Java の jar パッケージと同じ概念であると言われていますが、ネット上にはあまり情報がなく、まだ実際に使用していません。それを紹介する記事を見つけました: http://www.ibm.com/developerworks/cn/opensource/os-php-5.3new4/index.html
著者: Sean Zhu
出典: http://jujusharp.cnblogs.com
http://www.bkjia.com/PHPjc/364539.html