echo "Failure..."; } class testClass { public $publicProp; } $obj = new testClass(); $identity = null; $testRestrictedSetReference = new Types\RestrictedSet(array(), new Types\Restrictions(array(Type::TYPED_OBJECT), array('testClass')), array('strict' => true, 'unique' => true)); echo "Add Reference -> \n"; try { $obj->publicProp = 2; $identity = $testRestrictedSetReference->addReference($obj); $obj->publicProp = 3; echo "\nSet Internals --\n\n"; var_dump($testRestrictedSetReference->getArray()); echo "\n"; } catch (\Exception $e) { echo "EXCEPTION CAUGHT\n"; } echo "Retrieve Reference -> "; unset($obj); try { $obj = $testRestrictedSetReference->retrieveReference($identity); $obj->publicProp = 5; echo "\n\nSet Internals -- \n\n"; var_dump($testRestrictedSetReference->getArray()); echo "\n"; } catch (\Exception $e) { echo "EXCEPTION CUAGHT\n"; }