Annotation of embedaddon/php/ext/standard/tests/general_functions/is_object.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test is_object() function
3: --FILE--
4: <?php
5: /* Prototype: bool is_object ( mixed $var );
6: * Description: Finds whether the given variable is an object
7: */
8:
9: echo "*** Testing is_object() with valid objects ***\n";
10:
11: // class with no members
12: class foo
13: {
14: // no members
15: }
16:
17: // abstract class
18: abstract class abstractClass
19: {
20: abstract protected function getClassName();
21: public function printClassName () {
22: echo $this->getClassName() . "\n";
23: }
24: }
25:
26: // implement abstract class
27: class concreteClass extends abstractClass
28: {
29: protected function getClassName() {
30: return "concreteClass";
31: }
32: }
33:
34: // interface class
35: interface IValue
36: {
37: public function setVal ($name, $val);
38: public function dumpVal ();
39: }
40:
41: // implement the interface
42: class Value implements IValue
43: {
44: private $vars = array ();
45:
46: public function setVal ( $name, $val ) {
47: $this->vars[$name] = $val;
48: }
49:
50: public function dumpVal () {
51: var_dump ( $vars );
52: }
53: }
54:
55: // a gereral class
56: class myClass
57: {
58: var $foo_object;
59: public $public_var;
60: public $public_var1;
61: private $private_var;
62: protected $protected_var;
63:
64: function myClass ( ) {
65: $this->foo_object = new foo();
66: $this->public_var = 10;
67: $this->public_var1 = new foo();
68: $this->private_var = new foo();
69: $this->proected_var = new foo();
70: }
71: }
72:
73: // create a object of each class defined above
74: $myClass_object = new myClass();
75: $foo_object = new foo();
76: $Value_object = new Value();
77: $concreteClass_object = new concreteClass();
78:
79: $valid_objects = array(
80: new stdclass,
81: new foo,
82: new concreteClass,
83: new Value,
84: new myClass,
85: $myClass_object,
86: $myClass_object->foo_object,
87: $myClass_object->public_var1,
88: $foo_object,
89: $Value_object,
90: $concreteClass_object
91: );
92:
93: /* loop to check that is_object() recognizes different
94: objects, expected output: bool(true) */
95: $loop_counter = 1;
96: foreach ($valid_objects as $object ) {
97: echo "-- Iteration $loop_counter --\n"; $loop_counter++;
98: var_dump( is_object($object) );
99: }
100:
101: echo "\n*** Testing is_object() on non object types ***\n";
102:
103: // get a resource type variable
104: $fp = fopen (__FILE__, "r");
105: $dfp = opendir ( dirname(__FILE__) );
106:
107: // unset object
108: $unset_object = new foo();
109: unset ($unset_object);
110:
111: // other types in a array
112: $not_objects = array (
113: 0,
114: -1,
115: 0.1,
116: -10.0000000000000000005,
117: 10.5e+5,
118: 0xFF,
119: 0123,
120: $fp, // resource
121: $dfp,
122: array(),
123: array("string"),
124: "0",
125: "1",
126: "",
127: true,
128: NULL,
129: null,
130: @$unset_object, // unset object
131: @$undefined_var, // undefined variable
132: );
133: /* loop through the $not_objects to see working of
134: is_object() on non object types, expected output: bool(false) */
135: $loop_counter = 1;
136: foreach ($not_objects as $type ) {
137: echo "-- Iteration $loop_counter --\n"; $loop_counter++;
138: var_dump( is_object($type) );
139: }
140:
141: echo "\n*** Testing error conditions ***\n";
142: //Zero argument
143: var_dump( is_object() );
144:
145: //arguments more than expected
146: var_dump( is_object($myClass_object, $myClass_object) );
147:
148: echo "Done\n";
149:
150: // close the resources used
151: fclose($fp);
152: closedir($dfp);
153:
154: ?>
155: --EXPECTF--
156: *** Testing is_object() with valid objects ***
157: -- Iteration 1 --
158: bool(true)
159: -- Iteration 2 --
160: bool(true)
161: -- Iteration 3 --
162: bool(true)
163: -- Iteration 4 --
164: bool(true)
165: -- Iteration 5 --
166: bool(true)
167: -- Iteration 6 --
168: bool(true)
169: -- Iteration 7 --
170: bool(true)
171: -- Iteration 8 --
172: bool(true)
173: -- Iteration 9 --
174: bool(true)
175: -- Iteration 10 --
176: bool(true)
177: -- Iteration 11 --
178: bool(true)
179:
180: *** Testing is_object() on non object types ***
181: -- Iteration 1 --
182: bool(false)
183: -- Iteration 2 --
184: bool(false)
185: -- Iteration 3 --
186: bool(false)
187: -- Iteration 4 --
188: bool(false)
189: -- Iteration 5 --
190: bool(false)
191: -- Iteration 6 --
192: bool(false)
193: -- Iteration 7 --
194: bool(false)
195: -- Iteration 8 --
196: bool(false)
197: -- Iteration 9 --
198: bool(false)
199: -- Iteration 10 --
200: bool(false)
201: -- Iteration 11 --
202: bool(false)
203: -- Iteration 12 --
204: bool(false)
205: -- Iteration 13 --
206: bool(false)
207: -- Iteration 14 --
208: bool(false)
209: -- Iteration 15 --
210: bool(false)
211: -- Iteration 16 --
212: bool(false)
213: -- Iteration 17 --
214: bool(false)
215: -- Iteration 18 --
216: bool(false)
217: -- Iteration 19 --
218: bool(false)
219:
220: *** Testing error conditions ***
221:
222: Warning: is_object() expects exactly 1 parameter, 0 given in %s on line %d
223: bool(false)
224:
225: Warning: is_object() expects exactly 1 parameter, 2 given in %s on line %d
226: bool(false)
227: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>