2016-08-22 11 views
0

私はクラス祖先のアクセスを得ることができるようにクラス私の中で関数を作成したい、クラス祖先がクラス父親に親であり、クラス父親がクラス私に親であるところ。ですから、クラスの祖先の関数は祖先クラスのコンストラクタ値に依存するため、これを実行したいと思います。そして、私はこのプロセスのためにMeクラスとDadクラスのデフォルトコンストラクタを使いたくありません。継承を使用してPHPでコンストラクタの値をバイパスする方法は?

class ancestor 
 
{ 
 
var $a,$b; 
 
public function __construct($valA,$valB) 
 
{ 
 
    //this constructor's value i want to access 
 
    $this->a=$valA; 
 
    $this->b=$valB; 
 
} 
 
public add() 
 
{ 
 
return($this->a+$this->b); 
 
} 
 

 
} 
 
class dad extends ancestor 
 
{ 
 
public function __construct() 
 
{ 
 
//i don't want to use this as a bridge but i want to handle exception also 
 

 
} 
 

 
} 
 
class me extends dad 
 
{ 
 

 
public function ancestorConstructerValue($a,$b) 
 
{ 
 
//what is the code to access the ancestor's constructor function? 
 
} 
 
} 
 

 
$me= new me; 
 
$me->ancestorConstructerValue("",""); //i want to enter the value through this function 
 
echo $me->add(); 
 
?>

+0

は、($のargs =のfunc_get_argsを試してみてください)。 call_user_func_array(配列( 'parent'、 '__construct')、$ args); in ancestorConstructerValue –

+0

私は祖先クラスのアクセス権を私のクラスから取得したい、祖先は私のクラスの親ではなく、それは私の祖父母です。 –

+0

下記のコードを参照してください。正常に動作しています –

答えて

0

コード以下の使用:公共アドオンは()(パブリック関数すなわち機能を追加しなければならない)

class ancestor 
{ 
var $a,$b; 
public function __construct($valA='',$valB='') 
{ 
    //this constructor's value i want to access 
    $this->a=$valA; 
    $this->b=$valB; 
} 
public function add() 
{ 
return($this->a+$this->b); 
} 

} 
class dad extends ancestor 
{ 
public function __construct() 
{ 
//i want to use this as a bridge but i want to handle exception also 
$args = func_get_args(); 
call_user_func_array(array('parent', '__construct'), $args); 
} 

} 
class me extends dad 
{ 

public function ancestorConstructerValue($a,$b) 
{ 
//what is the code to access the ancestor's constructor function? 
$args = func_get_args(); 
call_user_func_array(array('parent', '__construct'), $args); 
} 
} 

$me= new me; 
$me->ancestorConstructerValue(1,2); //i want to enter the value through this function 
echo $me->add(); 
+0

これはクラスの父親のコンストラクタを取ることなく可能ですか?クラスのパースで別のセットコンストラクタを使用したい場合は、このコードが影響を受けますか? –

+0

nup、最初にあなたの懸念事項を試してみてください。私にこの値を追加するためのあなたの質問を解決させてください –

+0

おかげで、私はあなたのために解決策を見つけました... –

関連する問題