mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Allow indirect reference to method names in class::method() construct
This commit is contained in:
parent
9bd9862451
commit
73f488b323
1 changed files with 7 additions and 1 deletions
|
@ -492,12 +492,18 @@ function_call:
|
||||||
| cvar '(' { zend_do_begin_dynamic_function_call(&$1 CLS_CC); }
|
| cvar '(' { zend_do_begin_dynamic_function_call(&$1 CLS_CC); }
|
||||||
function_call_parameter_list
|
function_call_parameter_list
|
||||||
')' { zend_do_end_function_call(&$1, &$$, &$4, 0, 1 CLS_CC); zend_do_extended_fcall_end(CLS_C);}
|
')' { zend_do_end_function_call(&$1, &$$, &$4, 0, 1 CLS_CC); zend_do_extended_fcall_end(CLS_C);}
|
||||||
| T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_class_member_function_call(&$1, &$3 CLS_CC); }
|
| T_STRING T_PAAMAYIM_NEKUDOTAYIM method_name '(' { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_class_member_function_call(&$1, &$3 CLS_CC); }
|
||||||
function_call_parameter_list
|
function_call_parameter_list
|
||||||
')' { zend_do_end_function_call(&$3, &$$, &$6, 1, 1 CLS_CC); zend_do_extended_fcall_end(CLS_C);}
|
')' { zend_do_end_function_call(&$3, &$$, &$6, 1, 1 CLS_CC); zend_do_extended_fcall_end(CLS_C);}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
method_name:
|
||||||
|
T_STRING { $$ = $1; }
|
||||||
|
| cvar { zend_do_end_variable_parse(BP_VAR_R, 0 CLS_CC); $$ = $1; }
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
exit_expr:
|
exit_expr:
|
||||||
/* empty */ { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
|
/* empty */ { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
|
||||||
| '(' ')' { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
|
| '(' ')' { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue