0

私は2つのクラスを持っています:

class Init {
     public function test() {
          echo 1;
     }

     public static function loadSecond() {
          // Load the class
     }
}

class Second extends Init {
     public function test2() {
          echo 2;
     }
}

Secondリクエストによってのみクラスをロードする必要があります。例えば:

$init = new Init();
$init->test();

$second = $init::loadSecond();
$second->test2();
4

3 に答える 3

1

// Load the classと置き換えます

return new Second()

新しいオブジェクトを作成するだけです。(なぜそのようにする必要があるのか​​ わかりませんが、これは目的にかなうはずです。

于 2013-06-01T08:57:46.037 に答える
0

あなたが何をする必要があるのか​​ わかりません。必要なときにクラスを自動的に含める場合は、次のようにします。

Marcin Orlowski が言及したように、必要なのは PHP のオートローディング機能を使用することです。

基本的には次のようになります。

function __autoload ($name)
{
    include "/path/to/my/includes/" . $name . "inc.php";
}

別のクラスからオブジェクトを作成する場合は、おそらく次のようにする必要があります

class Init {
     public function test() {
          echo 1;
     }

     public static function loadSecond() {
          return new Second;
     }
}

class Second extends Init {
     public function test2() {
          echo 2;
     }
}
于 2013-06-01T08:52:20.670 に答える
-1

必要なのは、クラスのオートローディング機能が実装されていることです。基本的に PHP でサポートされているので、ドキュメントに従ってください: http://php.net/manual/pl/language.oop5.autoload.php

于 2013-06-01T08:30:14.783 に答える