這是情形:傳遞變量對類
有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