コンストラクターに渡されるすべての変数の名前と同じ値を持つクラスにプロパティを作成したいと考えています。
私は文字列でそれを行うことができました:
class test {
public function __construct() {
$args = func_get_args();
foreach($args as $arg) {
$this->{$arg} = $arg;
$this->init();
}
}
public function init() {
echo $this->one;
}
}
// Output: "one"
$obj = new test("one");
しかし、変数でそれを行う方法がわかりません。私はこれを試しました:
class test {
public function __construct() {
$args = func_get_args();
foreach($args as $arg) {
$this->{$arg} = $arg;
$this->init();
}
}
public function init() {
echo $this->one;
}
}
$one = "one!";
$obj = new test($one);
出力:
Notice: Undefined property: test::$one on line 13
私が出力したかったもの:
one!