mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
add support for ::foo syntax meaning "global one"
This commit is contained in:
parent
ce432004be
commit
3e45b23799
2 changed files with 8 additions and 2 deletions
|
@ -1167,8 +1167,13 @@ void do_fetch_class(znode *result, znode *namespace_name, znode *class_name TSRM
|
|||
SET_UNUSED(opline->op1);
|
||||
CG(catch_begin) = fetch_class_op_number;
|
||||
}
|
||||
zend_str_tolower(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len);
|
||||
if ((class_name->u.constant.value.str.len == (sizeof("self") - 1)) &&
|
||||
if(class_name) {
|
||||
zend_str_tolower(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len);
|
||||
}
|
||||
if(class_name == NULL) {
|
||||
SET_UNUSED(opline->op2);
|
||||
opline->extended_value = ZEND_FETCH_CLASS_MAIN;
|
||||
} else if ((class_name->u.constant.value.str.len == (sizeof("self") - 1)) &&
|
||||
!memcmp(class_name->u.constant.value.str.val, "self", sizeof("self"))) {
|
||||
SET_UNUSED(opline->op2);
|
||||
opline->extended_value = ZEND_FETCH_CLASS_SELF;
|
||||
|
|
|
@ -625,6 +625,7 @@ function_call:
|
|||
parse_class_entry:
|
||||
T_NAMESPACE_NAME T_PAAMAYIM_NEKUDOTAYIM T_STRING T_PAAMAYIM_NEKUDOTAYIM { do_fetch_class(&$$, &$1, &$3 TSRMLS_CC); }
|
||||
| T_STRING T_PAAMAYIM_NEKUDOTAYIM { do_fetch_class(&$$, NULL, &$1 TSRMLS_CC); }
|
||||
| T_PAAMAYIM_NEKUDOTAYIM { do_fetch_class(&$$, NULL, NULL TSRMLS_CC); }
|
||||
;
|
||||
|
||||
catch_class_entry:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue