Annotation of embedaddon/php/ext/reflection/tests/ReflectionClass_getInterfaces_003.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ReflectionClass::getInterfaces() - odd ampersand behaviour.
! 3: --CREDITS--
! 4: Robin Fernandes <robinf@php.net>
! 5: Steve Seear <stevseea@php.net>
! 6: --FILE--
! 7: <?php
! 8:
! 9: echo "An object is in an array and is referenced. As expected, var_dumping the array shows '&':\n";
! 10: $a = array(new stdclass);
! 11: $b =& $a[0];
! 12: var_dump($a);
! 13:
! 14: echo "Naturally, this remains true if we modify the object:\n";
! 15: $a[0]->x = 1;
! 16: var_dump($a);
! 17:
! 18:
! 19: echo "\n\nObtain the array of interfaces implemented by C.\n";
! 20: interface I {}
! 21: class C implements I {}
! 22: $rc = new ReflectionClass('C');
! 23: $a = $rc->getInterfaces();
! 24: echo "The result is an array in which each element is an object (an instance of ReflectionClass)\n";
! 25: echo "Var_dumping this array shows that the elements are referenced. By what?\n";
! 26: var_dump($a);
! 27:
! 28: echo "Modify the object, and it is apparently no longer referenced.\n";
! 29: $a['I']->x = 1;
! 30: var_dump($a);
! 31:
! 32: ?>
! 33: --EXPECTF--
! 34: An object is in an array and is referenced. As expected, var_dumping the array shows '&':
! 35: array(1) {
! 36: [0]=>
! 37: &object(stdClass)#%d (0) {
! 38: }
! 39: }
! 40: Naturally, this remains true if we modify the object:
! 41: array(1) {
! 42: [0]=>
! 43: &object(stdClass)#%d (1) {
! 44: ["x"]=>
! 45: int(1)
! 46: }
! 47: }
! 48:
! 49:
! 50: Obtain the array of interfaces implemented by C.
! 51: The result is an array in which each element is an object (an instance of ReflectionClass)
! 52: Var_dumping this array shows that the elements are referenced. By what?
! 53: array(1) {
! 54: ["I"]=>
! 55: &object(ReflectionClass)#%d (1) {
! 56: ["name"]=>
! 57: string(1) "I"
! 58: }
! 59: }
! 60: Modify the object, and it is apparently no longer referenced.
! 61: array(1) {
! 62: ["I"]=>
! 63: object(ReflectionClass)#%d (2) {
! 64: ["name"]=>
! 65: string(1) "I"
! 66: ["x"]=>
! 67: int(1)
! 68: }
! 69: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>