@@ -641,6 +641,18 @@ declared_property:
641
641
int ret = is_property_visibility_changed (obj->ce , &key);
642
642
643
643
if (EXPECTED (!ret)) {
644
+ if (UNEXPECTED (obj->ce ->ce_flags & ZEND_ACC_NO_DYNAMIC_PROPERTIES)) {
645
+ zend_throw_error (NULL , " Cannot create dynamic property %s::$%s" ,
646
+ ZSTR_VAL (obj->ce ->name ), zend_get_unmangled_property_name (Z_STR_P (&key)));
647
+ goto failure;
648
+ } else if (!(obj->ce ->ce_flags & ZEND_ACC_ALLOW_DYNAMIC_PROPERTIES)) {
649
+ zend_error (E_DEPRECATED, " Creation of dynamic property %s::$%s is deprecated" ,
650
+ ZSTR_VAL (obj->ce ->name ), zend_get_unmangled_property_name (Z_STR_P (&key)));
651
+ if (EG (exception )) {
652
+ goto failure;
653
+ }
654
+ }
655
+
644
656
data = zend_hash_add_new (ht, Z_STR (key), &EG (uninitialized_zval));
645
657
} else if (ret < 0 ) {
646
658
goto failure;
@@ -654,18 +666,6 @@ second_try:
654
666
ZVAL_NULL (data);
655
667
}
656
668
}
657
-
658
- if (UNEXPECTED (obj->ce ->ce_flags & ZEND_ACC_NO_DYNAMIC_PROPERTIES)) {
659
- zend_throw_error (NULL , " Cannot create dynamic property %s::$%s" ,
660
- ZSTR_VAL (obj->ce ->name ), zend_get_unmangled_property_name (Z_STR_P (&key)));
661
- goto failure;
662
- } else if (!(obj->ce ->ce_flags & ZEND_ACC_ALLOW_DYNAMIC_PROPERTIES)) {
663
- zend_error (E_DEPRECATED, " Creation of dynamic property %s::$%s is deprecated" ,
664
- ZSTR_VAL (obj->ce ->name ), zend_get_unmangled_property_name (Z_STR_P (&key)));
665
- if (EG (exception )) {
666
- goto failure;
667
- }
668
- }
669
669
}
670
670
zval_ptr_dtor_str (&key);
671
671
} else if (Z_TYPE (key) == IS_LONG) {
0 commit comments