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>