@@ -731,6 +731,11 @@ static int zend_ast_valid_var_name(const char *s, size_t len)
731
731
return 1 ;
732
732
}
733
733
734
+ static ZEND_COLD int zend_ast_var_needs_braces (char ch )
735
+ {
736
+ return ch == '[' || zend_ast_valid_var_char (ch );
737
+ }
738
+
734
739
static void zend_ast_export_var (smart_str * str , zend_ast * ast , int priority , int indent )
735
740
{
736
741
if (ast -> kind == ZEND_AST_ZVAL ) {
@@ -778,7 +783,7 @@ static void zend_ast_export_encaps_list(smart_str *str, char quote, zend_ast_lis
778
783
ast -> child [0 ]-> kind == ZEND_AST_ZVAL &&
779
784
(i + 1 == list -> children ||
780
785
list -> child [i + 1 ]-> kind != ZEND_AST_ZVAL ||
781
- !zend_ast_valid_var_char (
786
+ !zend_ast_var_needs_braces (
782
787
* Z_STRVAL_P (
783
788
zend_ast_get_zval (list -> child [i + 1 ]))))) {
784
789
zend_ast_export_ex (str , ast , 0 , indent );
@@ -1390,6 +1395,8 @@ static void zend_ast_export_ex(smart_str *str, zend_ast *ast, int priority, int
1390
1395
zend_ast_export_ex (str , ast -> child [1 ], 80 , indent );
1391
1396
smart_str_appends (str , " => " );
1392
1397
}
1398
+ if (ast -> attr )
1399
+ smart_str_appendc (str , '&' );
1393
1400
zend_ast_export_ex (str , ast -> child [0 ], 80 , indent );
1394
1401
break ;
1395
1402
case ZEND_AST_NEW :
0 commit comments