这是情景:
共有3个类: A类,B类,C类
//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.....
现在我想要的是:
我想在class C
中调用class B
的一些函数
我知道我可以通过class B
像这样$c = new C();
制作一个对象来做到这一点。
但我也希望传递B
的所有变量,即(something1,something2 ....)
程序通过class C
我知道我可以这样做:
$c->something1 = $this->something1;
$c->something2 = $this->something2 .....
但如果没有上述代码,是否可以这样做,因为
$c->somethingN
只会占用太多行,我不喜欢重复的代码。
我只是想知道是否还有其他办法。
答案 0 :(得分:0)
我知道我可以通过在B类中创建一个像这样的$ c = new C();来实现这一点。
如果这是实例成员(非静态),则可以采用此方法。
另一种方法是使用静态成员,如下所示:
class A {
public static $foo;
}
class B extends A {}
class C extends A {}
# usage:
B::$foo = 'bar';
echo C::$foo; // will output 'bar'