オブジェクトのプロパティがオブジェクトに直接存在せず、静的変数を通じて定義され、$data
プロパティに格納されているオブジェクトを作成しようとしていますが、ユーザーは__get
と__set
です。私がオブジェクトに到達するまで、うまくいきます。再帰オブジェクトの問題と、stdClass
のgetterとsetterの作成にアクセスできないため、内部的にオブジェクトの値を配列として格納し、出力にキャストできます。誰かがオブジェクトのプロパティを配列の値として設定する
$fleet->car->wheels = 4;
のような何かをするとき、残念ながら、私はすぐにその後、インナー、それが第一の外側のセット(car->wheels
)を行うことを試みることを示していると思われる
Creating default object from empty value
を取得しますか?それは私には意味がない。私にとっては、論理的にはまずcar
の値を$fleet
から取得してから、wheels
に設定しようとします。
私はこれについて間違って考えているのですか?これはちょうど不可能ですか?他の解決策は、getters/setterを使って値を保持するオブジェクトを作成することですが、できるだけコードを少なくしたいと思います。
この参照するには、最低コード:
class Test
{
public function __set($key, $value) {
var_dump($key, $value);
}
}
$test = new Test();
$test->car->wheels = 4;
これは興味深い質問です。 [MCVE](https://stackoverflow.com/help/mcve)を提供できます – dan08
クラスコードを共有できますか –