Return to is_object.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / general_functions |
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