将变量传递给类

时间:2013-04-13 15:36:25

标签: php inheritance

这是情景:

共有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只会占用太多行,我不喜欢重复的代码。

我只是想知道是否还有其他办法。

1 个答案:

答案 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'