0

这是场景:

有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 Cin 的一些函数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

我知道我可以通过在 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'
于 2013-04-13T15:40:02.177 回答