File tree Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Dereferencing operations on an encapsed string
3
+ --FILE--
4
+ <?php
5
+
6
+ $ bar = "bar " ;
7
+ var_dump ("foo $ bar " [0 ]);
8
+ var_dump ("foo $ bar " ->prop );
9
+ try {
10
+ var_dump ("foo $ bar " ->method ());
11
+ } catch (Error $ e ) {
12
+ echo $ e ->getMessage (), "\n" ;
13
+ }
14
+
15
+ class FooBar { public static $ prop = 42 ; }
16
+ var_dump ("foo $ bar " ::$ prop );
17
+
18
+ function foobar () { return 42 ; }
19
+ var_dump ("foo $ bar " ());
20
+
21
+ ?>
22
+ --EXPECTF--
23
+ string(1) "f"
24
+
25
+ Warning: Trying to get property 'prop' of non-object in %s on line %d
26
+ NULL
27
+ Call to a member function method() on string
28
+ int(42)
29
+ int(42)
Original file line number Diff line number Diff line change @@ -1102,6 +1102,7 @@ dereferencable_scalar:
1102
1102
T_ARRAY ' (' array_pair_list ' )' { $$ = $3 ; $$ ->attr = ZEND_ARRAY_SYNTAX_LONG; }
1103
1103
| ' [' array_pair_list ' ]' { $$ = $2 ; $$ ->attr = ZEND_ARRAY_SYNTAX_SHORT; }
1104
1104
| T_CONSTANT_ENCAPSED_STRING { $$ = $1 ; }
1105
+ | ' "' encaps_list ' "' { $$ = $2 ; }
1105
1106
;
1106
1107
1107
1108
scalar :
@@ -1118,7 +1119,6 @@ scalar:
1118
1119
| T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = $2 ; }
1119
1120
| T_START_HEREDOC T_END_HEREDOC
1120
1121
{ $$ = zend_ast_create_zval_from_str(ZSTR_EMPTY_ALLOC()); }
1121
- | ' "' encaps_list ' "' { $$ = $2 ; }
1122
1122
| T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = $2 ; }
1123
1123
| dereferencable_scalar { $$ = $1 ; }
1124
1124
| constant { $$ = $1 ; }
You can’t perform that action at this time.
0 commit comments