(Uwe Schindler)
- Fixed bug #32429 (method_exists() always return TRUE if __call method
exists). (Dmitry)
+- Fixed bug #32428 (The @ warning error supression operator is broken).
+ (Dmitry)
- Fixed bug #32427 (Interfaces are not allowed 'static' access modifier).
(Dmitry)
- Fixed bug #32109 ($_POST is not populated in multithreaded environment).
--- /dev/null
+--TEST--
+Bug #32428 (The @ warning error supression operator is broken)
+--FILE--
+<?php
+ $data = @$not_exists;
+ $data = @($not_exists);
+ $data = @!$not_exists;
+ $data = !@$not_exists;
+ $data = @($not_exists+1);
+ echo "ok\n";
+?>
+--EXPEXT--
+ok
if (varname->op_type == IS_CONST && varname->u.constant.type == IS_STRING &&
!zend_is_auto_global(varname->u.constant.value.str.val, varname->u.constant.value.str.len TSRMLS_CC) &&
!(varname->u.constant.value.str.len == (sizeof("this")-1) &&
- !memcmp(varname->u.constant.value.str.val, "this", sizeof("this")))) {
+ !memcmp(varname->u.constant.value.str.val, "this", sizeof("this"))) &&
+ (CG(active_op_array)->last == 0 ||
+ CG(active_op_array)->opcodes[CG(active_op_array)->last-1].opcode != ZEND_BEGIN_SILENCE)) {
result->op_type = IS_CV;
result->u.var = lookup_cv(CG(active_op_array), varname->u.constant.value.str.val, varname->u.constant.value.str.len);
result->u.EA.type = 0;