diff options
| author | Nikita Popov <nikic@php.net> | 2016-04-20 18:37:23 +0200 |
|---|---|---|
| committer | Nikita Popov <nikic@php.net> | 2016-04-20 18:38:40 +0200 |
| commit | 77bb96d7c95ddfdba8b16325db439913ee58522f (patch) | |
| tree | 865037861c5f899bb5cbc997d606c70f1eb8ce33 /Zend/zend_compile.c | |
| parent | ede06b7e20b860c70ff446fdb2bc26decbef79de (diff) | |
| download | php-git-77bb96d7c95ddfdba8b16325db439913ee58522f.tar.gz | |
Fix bug #71737
Also improve the error message for $this used in parameters.
Diffstat (limited to 'Zend/zend_compile.c')
| -rw-r--r-- | Zend/zend_compile.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 13e774eaba..89fd0e520e 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -4484,8 +4484,9 @@ void zend_compile_params(zend_ast *ast, zend_ast *return_type_ast) /* {{{ */ zend_error_noreturn(E_COMPILE_ERROR, "Redefinition of parameter $%s", ZSTR_VAL(name)); } else if (zend_string_equals_literal(name, "this")) { - if (op_array->scope && (op_array->fn_flags & ZEND_ACC_STATIC) == 0) { - zend_error_noreturn(E_COMPILE_ERROR, "Cannot re-assign $this"); + if ((op_array->scope || (op_array->fn_flags & ZEND_ACC_CLOSURE)) + && (op_array->fn_flags & ZEND_ACC_STATIC) == 0) { + zend_error_noreturn(E_COMPILE_ERROR, "Cannot use $this as parameter"); } op_array->this_var = var_node.u.op.var; } |
