function heh() { return array('foo' => heh2()); }
{ function offsetExists($x) { return true; } function offsetGet($x) { return new dtor(1); } function offsetSet($x, $y) { } function offsetUnset($x) { } } function get() { echo "get\n"; return 0; } function heh2($x, $foo) { try { return $x[$foo]->asd[0][new dtor(2)] = new dtor(3); } catch (exception $x) { return null; } } var_dump(heh2(new heh(), 0)); echo "ok\n";