2011-11-12 40 views
0
class Parent 
{ 
public function exec() 
{ 
    // here I need the child object! 
} 
} 

class Child extends Parent 
{ 
public function exec() 
{ 
    // something 
    parent::exec(); 
} 
} 

正如你所看到的,我需要父對象的子對象。我怎樣才能達到它?php,我需要父項的子對象,怎麼樣?

+2

如果一個Child實際上並不是Parent的一個子集,而只是想在對象之間建立一個層次結構,那麼需要一個像樹或鏈表這樣的數據結構,而不是繼承。 – Wiseguy

回答

2

您可以通過孩子作爲參數:

class ParentClass 
{ 
    public function exec($child) 
    { 
     echo 'Parent exec'; 
     $child->foo(); 
    } 
} 

class Child extends ParentClass 
{ 
    public function exec() 
    { 
     parent::exec($this); 
    } 

    public function foo() 
    { 
     echo 'Child foo'; 
    } 
} 

這是很少用到的,所以有可能是一個更好的方式做what you're trying to do

+1

+1鏈接到XY問題。 – 2011-11-12 21:40:53

相關問題