私がやりたいことは、一連の属性を与えることができる静的ファクトリ関数を持ち、既知のクラスを拡張する以前に宣言されていないクラスのオブジェクトを返すことです。
基本的:
<?php
class foo {
public $a;
function increment($b = 1){
$this->a += $b;
}
}
function factory($name, $a){
//returns an object of class $name that extends foo with $this->a set to $a
}
コードを書くと:
<?php
$bar = factory("bar",12);
$bar->increment(5);
print_r($bar);
if(is_a($bar, "foo")){
echo "is a Foo";
}
$moo = factory("moo", 4);
$moo->increment();
print_r($moo);
if(is_a($moo, "foo")){
echo "is a Foo";
}
私は得る: [編集]
bar Object
(
[a] => 17
)
is a Foo
moo Object
(
[a] => 5
)
is a Foo
しかし、これを行うために必要なコマンドをどこから探し始めればよいかわかりません。私のファクトリ関数では、 $name の値が親クラスを拡張するが、それを変更しないことを何らかの方法で宣言する必要があると思います。その後、新しい $name を構築します。そうすれば、型が異なるだけで、親クラスのすべての機能を持ちます。