Annotation of embedaddon/php/tests/classes/implicit_instantiation_001.phpt, revision 1.1.1.2

1.1       misho       1: --TEST--
                      2: Implicit object instantiation when accessing properties of non-object.
                      3: --FILE--
                      4: <?php
                      5: class C {
                      6:        // These values get implicitly converted to objects
                      7:        public $boolFalse = false;
                      8:        public $emptyString = '';
                      9:        public $null = null;
                     10: 
                     11:        // These values do not get implicitly converted to objects
                     12:        public $boolTrue = true;
                     13:        public $nonEmptyString = 'hello';
                     14:        public $intZero = 0;
                     15: }
                     16: 
                     17: $c = new C;
                     18: foreach($c as $name => $value) {
                     19:        echo "\n\n---( \$c->$name )---";
                     20:        echo "\n  --> Attempting implicit conversion to object using increment...\n";
                     21:        $c->$name->prop++;
                     22:        $c->$name = $value; // reset value in case implicit conversion was successful
                     23:        
                     24:        echo "\n  --> Attempting implicit conversion to object using assignment...\n";
                     25:        $c->$name->prop = "Implicit instantiation!";
                     26:        $c->$name = $value; // reset value in case implicit conversion was successful
                     27: 
                     28:        echo "\n  --> Attempting implicit conversion to object using combined assignment...\n";
                     29:        $c->$name->prop .= " Implicit instantiation!";
                     30: }
                     31: 
                     32: echo "\n\n\n --> Resulting object:";
                     33: var_dump($c);
                     34: 
                     35: ?>
                     36: --EXPECTF--
                     37: 
                     38: 
                     39: ---( $c->boolFalse )---
                     40:   --> Attempting implicit conversion to object using increment...
                     41: 
1.1.1.2 ! misho      42: Warning: Creating default object from empty value in %s on line 18
1.1       misho      43: 
                     44:   --> Attempting implicit conversion to object using assignment...
                     45: 
1.1.1.2 ! misho      46: Warning: Creating default object from empty value in %s on line 22
1.1       misho      47: 
                     48:   --> Attempting implicit conversion to object using combined assignment...
                     49: 
1.1.1.2 ! misho      50: Warning: Creating default object from empty value in %s on line 26
1.1       misho      51: 
                     52: 
                     53: ---( $c->emptyString )---
                     54:   --> Attempting implicit conversion to object using increment...
                     55: 
1.1.1.2 ! misho      56: Warning: Creating default object from empty value in %s on line 18
1.1       misho      57: 
                     58:   --> Attempting implicit conversion to object using assignment...
                     59: 
1.1.1.2 ! misho      60: Warning: Creating default object from empty value in %s on line 22
1.1       misho      61: 
                     62:   --> Attempting implicit conversion to object using combined assignment...
                     63: 
1.1.1.2 ! misho      64: Warning: Creating default object from empty value in %s on line 26
1.1       misho      65: 
                     66: 
                     67: ---( $c->null )---
                     68:   --> Attempting implicit conversion to object using increment...
                     69: 
1.1.1.2 ! misho      70: Warning: Creating default object from empty value in %s on line 18
1.1       misho      71: 
                     72:   --> Attempting implicit conversion to object using assignment...
                     73: 
1.1.1.2 ! misho      74: Warning: Creating default object from empty value in %s on line 22
1.1       misho      75: 
                     76:   --> Attempting implicit conversion to object using combined assignment...
                     77: 
1.1.1.2 ! misho      78: Warning: Creating default object from empty value in %s on line 26
1.1       misho      79: 
                     80: 
                     81: ---( $c->boolTrue )---
                     82:   --> Attempting implicit conversion to object using increment...
                     83: 
                     84: Warning: Attempt to %s property of non-object in %s on line 18
                     85: 
                     86:   --> Attempting implicit conversion to object using assignment...
                     87: 
                     88: Warning: Attempt to assign property of non-object in %s on line 22
                     89: 
                     90:   --> Attempting implicit conversion to object using combined assignment...
                     91: 
                     92: Warning: Attempt to assign property of non-object in %s on line 26
                     93: 
                     94: 
                     95: ---( $c->nonEmptyString )---
                     96:   --> Attempting implicit conversion to object using increment...
                     97: 
                     98: Warning: Attempt to %s property of non-object in %s on line 18
                     99: 
                    100:   --> Attempting implicit conversion to object using assignment...
                    101: 
                    102: Warning: Attempt to assign property of non-object in %s on line 22
                    103: 
                    104:   --> Attempting implicit conversion to object using combined assignment...
                    105: 
                    106: Warning: Attempt to assign property of non-object in %s on line 26
                    107: 
                    108: 
                    109: ---( $c->intZero )---
                    110:   --> Attempting implicit conversion to object using increment...
                    111: 
                    112: Warning: Attempt to %s property of non-object in %s on line 18
                    113: 
                    114:   --> Attempting implicit conversion to object using assignment...
                    115: 
                    116: Warning: Attempt to assign property of non-object in %s on line 22
                    117: 
                    118:   --> Attempting implicit conversion to object using combined assignment...
                    119: 
                    120: Warning: Attempt to assign property of non-object in %s on line 26
                    121: 
                    122: 
                    123: 
                    124:  --> Resulting object:object(C)#%d (6) {
                    125:   [%u|b%"boolFalse"]=>
                    126:   object(stdClass)#%d (1) {
                    127:     [%u|b%"prop"]=>
                    128:     %unicode|string%(24) " Implicit instantiation!"
                    129:   }
                    130:   [%u|b%"emptyString"]=>
                    131:   object(stdClass)#%d (1) {
                    132:     [%u|b%"prop"]=>
                    133:     %unicode|string%(24) " Implicit instantiation!"
                    134:   }
                    135:   [%u|b%"null"]=>
                    136:   object(stdClass)#%d (1) {
                    137:     [%u|b%"prop"]=>
                    138:     %unicode|string%(24) " Implicit instantiation!"
                    139:   }
                    140:   [%u|b%"boolTrue"]=>
                    141:   bool(true)
                    142:   [%u|b%"nonEmptyString"]=>
                    143:   %unicode|string%(5) "hello"
                    144:   [%u|b%"intZero"]=>
                    145:   int(0)
                    146: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>