Annotation of embedaddon/php/ext/reflection/tests/ReflectionObject_isSubclassOf_basic.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: ReflectionObject::isSubclassOf() - basic function test
3: --FILE--
4: <?php
5: class A {}
6: class B extends A {}
7: class C extends B {}
8:
9: interface I {}
10: class X implements I {}
11:
12: $classNames = array('A', 'B', 'C', 'I', 'X');
13:
14: //Create ReflectionClasses
15: foreach ($classNames as $className) {
16: $rcs[$className] = new ReflectionClass($className);
17: }
18:
19: //Create ReflectionObjects
20: foreach ($classNames as $className) {
21: if ($rcs[$className]->isInstantiable()) {
22: $ros[$className] = new ReflectionObject(new $className);
23: }
24: }
25:
26: foreach ($ros as $childName => $child) {
27: foreach ($rcs as $parentName => $parent) {
28: echo "Is " . $childName . " a subclass of " . $parentName . "? \n";
29: echo " - Using ReflectionClass object argument: ";
30: var_dump($child->isSubclassOf($parent));
31: if ($parent->isInstantiable()) {
32: echo " - Using ReflectionObject object argument: ";
33: var_dump($child->isSubclassOf($ros[$parentName]));
34: }
35: echo " - Using string argument: ";
36: var_dump($child->isSubclassOf($parentName));
37: }
38: }
39: ?>
40: --EXPECTF--
41: Is A a subclass of A?
42: - Using ReflectionClass object argument: bool(false)
43: - Using ReflectionObject object argument: bool(false)
44: - Using string argument: bool(false)
45: Is A a subclass of B?
46: - Using ReflectionClass object argument: bool(false)
47: - Using ReflectionObject object argument: bool(false)
48: - Using string argument: bool(false)
49: Is A a subclass of C?
50: - Using ReflectionClass object argument: bool(false)
51: - Using ReflectionObject object argument: bool(false)
52: - Using string argument: bool(false)
53: Is A a subclass of I?
54: - Using ReflectionClass object argument: bool(false)
55: - Using string argument: bool(false)
56: Is A a subclass of X?
57: - Using ReflectionClass object argument: bool(false)
58: - Using ReflectionObject object argument: bool(false)
59: - Using string argument: bool(false)
60: Is B a subclass of A?
61: - Using ReflectionClass object argument: bool(true)
62: - Using ReflectionObject object argument: bool(true)
63: - Using string argument: bool(true)
64: Is B a subclass of B?
65: - Using ReflectionClass object argument: bool(false)
66: - Using ReflectionObject object argument: bool(false)
67: - Using string argument: bool(false)
68: Is B a subclass of C?
69: - Using ReflectionClass object argument: bool(false)
70: - Using ReflectionObject object argument: bool(false)
71: - Using string argument: bool(false)
72: Is B a subclass of I?
73: - Using ReflectionClass object argument: bool(false)
74: - Using string argument: bool(false)
75: Is B a subclass of X?
76: - Using ReflectionClass object argument: bool(false)
77: - Using ReflectionObject object argument: bool(false)
78: - Using string argument: bool(false)
79: Is C a subclass of A?
80: - Using ReflectionClass object argument: bool(true)
81: - Using ReflectionObject object argument: bool(true)
82: - Using string argument: bool(true)
83: Is C a subclass of B?
84: - Using ReflectionClass object argument: bool(true)
85: - Using ReflectionObject object argument: bool(true)
86: - Using string argument: bool(true)
87: Is C a subclass of C?
88: - Using ReflectionClass object argument: bool(false)
89: - Using ReflectionObject object argument: bool(false)
90: - Using string argument: bool(false)
91: Is C a subclass of I?
92: - Using ReflectionClass object argument: bool(false)
93: - Using string argument: bool(false)
94: Is C a subclass of X?
95: - Using ReflectionClass object argument: bool(false)
96: - Using ReflectionObject object argument: bool(false)
97: - Using string argument: bool(false)
98: Is X a subclass of A?
99: - Using ReflectionClass object argument: bool(false)
100: - Using ReflectionObject object argument: bool(false)
101: - Using string argument: bool(false)
102: Is X a subclass of B?
103: - Using ReflectionClass object argument: bool(false)
104: - Using ReflectionObject object argument: bool(false)
105: - Using string argument: bool(false)
106: Is X a subclass of C?
107: - Using ReflectionClass object argument: bool(false)
108: - Using ReflectionObject object argument: bool(false)
109: - Using string argument: bool(false)
110: Is X a subclass of I?
111: - Using ReflectionClass object argument: bool(true)
112: - Using string argument: bool(true)
113: Is X a subclass of X?
114: - Using ReflectionClass object argument: bool(false)
115: - Using ReflectionObject object argument: bool(false)
116: - Using string argument: bool(false)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>