2011-09-09 8 views
0

$ thisオブジェクトを$ thisベースクラスを拡張するクラスの新しいインスタンスに割り当てることは可能ですか?要するに

class base { 

    function a() { 

     // do some stuff here 
     $extended = new extending(); 
     $this = $extended; 
     $this->extended_functionality(); 
    } 
} 

class extending { 

    function extended_functionality() { 

     // do some more! stuff here 
    } 
} 
+0

地球上でこれをしたいと思うのはなぜ? –

+1

これは反パターンです。それが可能かどうかにかかわらず、私はあなたがそれを避けることを勧めます。 –

+0

うーん、もう少しテストをして、それができないように見えます...誰かが私をよりセマンティックなアプローチに導くことができますか? – AndrewMcLagan

答えて

3

...号

$this(もちろんPHPに)現在のインスタンス化オブジェクトを表す読み取り専用のキーワードです。

最初に意味するオブジェクトを作成してください。

0

いいえ、あなたはすべき:

class base { 

private extended; 

    function a() { 

     // do some stuff here 
     $this->extended = new extending(); 
     $this->extended->extended_functionality(); 
    } 
} 

class extending { 

    function __construct() { 
    } 

    function extended_functionality() { 

     // do some more! stuff here 
    } 
} 
関連する問題