1

基本的に次のような自動ロードメソッドを作成しました。

public function load_class($class){
    $path = str_replace('_', '/', $class);
    if(file_exists(get_template_directory() . '/' . $path . '.php')){
        require_once(get_template_directory() . '/' . $path . '.php');
    }
}

私がやりたいことの1つは言うことです:

このクラスがすでに必要な場合は、クラスが呼び出されたり、拡張されたり、インスタンス化されたりするたびにrequire_once()を実行する代わりに、このクラスを呼び出すだけです。

しかし、これを行う方法がわからない場合は、助けを求めているのでしょうか。それとも、require_onceは、必要になったときにクラスを本質的に「キャッシュ」するのでしょうか。私の理解では、呼び出しごとに1回だけ必要です。それはそれが再びそれを必要としなければならないすべての呼び出しです....???

4

1 に答える 1

1

これをオートローダーとして使用している場合は、クラスが最初に定義されていない場合にのみ実行されます。

これに加えて、require_once()ロードされたファイルを追跡します。同じファイルを再度呼び出すとrequire_once()、何も起こりません。

于 2012-11-30T21:28:54.630 に答える