0

これはシナリオです:

A級、B級、C級の3つのクラスがあります。

//A.php
class A {
 public $something1;
 public $something2;
 //long list....

// i am the base class
}


//B.php
class B extends A {

// i am a child of A
}


//C.php
class C extends A{

// i do the side work
}

プログラムはオブジェクトを作成し、クラス Bの値を次のように設定します。

$b = new B();
$b->something1 = "XYZ";
$b->something2 = "ABC";
...... long list.....

今私が欲しいのは、 in のいくつかの関数を呼び出したいということclass Cですclass B。このよう
にオブジェクトを作成することでそれができることを私は知っています。 class B$c = new C();

しかし、プログラムによって渡されたBie (something1、something2 ....)のすべての変数も渡したいclass C

私はこれを次のようにできることを知っています:

$c->something1 = $this->something1;
$c->something2 = $this->something2 .....


$c->somethingNしかし、あまりにも多くの行が必要であり、繰り返しのコードが好きではないため、上記のコードなしでそれを行うことは可能ですか?

他に方法がないか知りたいだけです。

4

1 に答える 1

0

$c = new C(); のようにクラス B のオブジェクトを作成することで、それができることを私は知っています。

これがインスタンス メンバー (静的ではない) である場合は、これが適切な方法です。


別の方法は、次のように静的メンバーを使用することです。

class A {
    public static $foo;
}

class B extends A {}
class C extends A {}

# usage:
B::$foo = 'bar';
echo C::$foo; // will output 'bar'
于 2013-04-13T15:40:02.177 に答える