Annotation of embedaddon/php/ext/standard/tests/general_functions/is_object.phpt, revision 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>