这是情形:传递变量对类
有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 = new B();
$b->something1 = "XYZ";
$b->something2 = "ABC";
...... long list.....
现在我想的是: 我要打电话的0某些功能在class B
。
我知道我可以通过在class B
中制作一个对象,例如$c = new C();
。
但我也想通过的B
所有的变量,即(something1,something2 ....) 通过程序传递给class C
我知道我能做到这一点是这样的:
$c->something1 = $this->something1;
$c->something2 = $this->something2 .....
但它是可以做到,如果没有上面的代码,因为
$c->somethingN
只会走太多的线条和我不喜欢重复的代码。
我只想知道是否有其他方法。
为什么不使用值,而不是单个成员的数组?然后你可以把所有的变量作为一个来处理或者为这些值创建一个额外的“容器”类,以便您可以更轻松地处理和传递它们。而且,实际上,您已经拥有了C类中设置的类B中的值,因为您已将它们声明为类A中的公共类,而类B和类C都是这两个类的派生类... – arkascha
容器类的想法看起来很有趣,你能给个例子吗 ? –
只是一个类“存储”或类似于被动容器的东西。您可以在一个类中创建一个实例,并将其作为对该实例的引用传递给其他对象。就这样。 – arkascha