--TEST-- Assign on object inside property hook is ok --FILE-- $value\n"; } public function offsetUnset(mixed $offset): void { echo "Unsetting $offset\n"; } } class C { public $a { get { return $this->a; } set { $this->a = $value; } } } $c = new C; $c->a = new A(); $c->a->b = 'b'; var_dump($c->a->b); var_dump($c->a['foo']); $c->a['foo'] = 'foo'; unset($c->a['foo']); ?> --EXPECT-- string(1) "b" string(3) "foo" Setting foo => foo Unsetting foo