2011-06-23 2 views
0

は、私のような何かをしたいオブジェクト:Laucherは

library.php:

require_once "laucher.php"; 

    class Test{ 
     public function __construct(){ 
      print "test"; 
     } 
    } 

    class Foo extends Bar{ 
     public function __construct(){ 
      $t = new Test(); 
     } 
    } 

    class Bar{ 
     public function __construct(){ 

     } 
    } 

そしてlaucher.phpに、私は$ tとFooのオブジェクトを作成したいと思います=新しいですFoo();

laucher.phpでFooオブジェクトを作成する方法はありますか?私はFoo()の "オートローシャー"を作りたいと思います。

+0

http://php.net/manual/en/language.oop5.autoload.php。 launcher.phpに 'Foo'オブジェクトを作成することはできません。なぜなら、PHPがファイルを必要としている/解析中で、Fooはまだ定義されていないからです。 –

+0

外部ファイルからFooを自動的に実行する方法はありますか? –

+0

定義(require_once)をインクルードします。 (btw:クラスを「実行」しないでください) –

答えて

0

あなたはFooが置かれているファイルをインクルードする必要がありますので...

include("foo_file.php"); 

は次に、あなたがfooのインスタンスを作成することができます。

$my_object = new Foo(); 
0

Fooが定義される前にFooオブジェクトを作成することはできません。したがって、クラス宣言の前にFooオブジェクトを含めると、 "laucher.php"内にFooオブジェクトを作成することはできません。

の後にlaucher.phpが含まれていると、Fooオブジェクトを内部で作成できるはずです。だから私はこれがうまくいくと思います:

class Test{ 
    public function __construct(){ 
     print "test"; 
    } 
} 

class Foo extends Bar{ 
    public function __construct(){ 
     $t = new Test(); 
    } 
} 

class Bar{ 
    public function __construct(){ 

    } 
} 

require_once "laucher.php"; 
+0

自動ロードが正常に機能しました!ありがとうございました!最後のrequire_onceは機能しますが、私は最後にそれを管理する考えが嫌いです!みんなありがとう! –

関連する問題