Restore NULLing of UNDEF values in get_property_ptr_ptr for the
BP_VAR_R and BP_VAR_RW cases.
--- /dev/null
+--TEST--
+Handling of UNDEF property in compound assign
+--FILE--
+<?php
+class C {
+ public $a = 0;
+}
+function foo() {
+ $x = new C;
+ $x->a = 1;
+ unset($x->a);
+ $x->a += 2;
+ var_dump($x);
+}
+foo();
+?>
+--EXPECTF--
+Notice: Undefined property: C::$a in %s on line %d
+object(C)#1 (1) {
+ ["a"]=>
+ int(2)
+}
if (EXPECTED(!zobj->ce->__get) ||
UNEXPECTED((*zend_get_property_guard(zobj, name)) & IN_GET)) {
if (UNEXPECTED(type == BP_VAR_RW || type == BP_VAR_R)) {
+ ZVAL_NULL(retval);
zend_error(E_NOTICE, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name));
}
} else {