From: Nikita Popov Date: Fri, 15 Nov 2019 11:07:24 +0000 (+0100) Subject: Merge branch 'PHP-7.4' X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=716fdacdd126c9fa2ff0ef8d381e89ae7c043968;p=php Merge branch 'PHP-7.4' * PHP-7.4: Fixed bug #78810 --- 716fdacdd126c9fa2ff0ef8d381e89ae7c043968 diff --cc Zend/zend_object_handlers.c index c73f6019f6,3a7b83ed63..3b0bec45a5 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@@ -1013,8 -1044,16 +1013,16 @@@ ZEND_API zval *zend_std_get_property_pt 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_WARNING, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); + if (UNEXPECTED(prop_info)) { + zend_throw_error(NULL, + "Typed property %s::$%s must not be accessed before initialization", + ZSTR_VAL(prop_info->ce->name), + ZSTR_VAL(name)); + retval = &EG(error_zval); + } else { + ZVAL_NULL(retval); - zend_error(E_NOTICE, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); ++ zend_error(E_WARNING, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); + } } } else { /* we do have getter - fail and let it try again with usual get/set */