From: Marcus Boerger Date: Thu, 10 Mar 2005 13:24:33 +0000 (+0000) Subject: - MFH Bugfix #28442 X-Git-Tag: php-5.0.4RC1~36 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=84bd08261fc1c8ea68cd9c169a490297701aa0f9;p=php - MFH Bugfix #28442 --- diff --git a/Zend/tests/bug28442.phpt b/Zend/tests/bug28442.phpt new file mode 100755 index 0000000000..1237357cca --- /dev/null +++ b/Zend/tests/bug28442.phpt @@ -0,0 +1,65 @@ +--TEST-- +Bug #28442 (Changing a static variables in a class changes it across sub/super classes.) +--FILE-- + +===DONE=== +--EXPECTF-- +===INIT=== +string(1) "A" +string(1) "C" +string(1) "C" +===SetA=== +string(2) "A2" +string(1) "C" +string(1) "C" +===SetB=== +string(2) "A2" +string(2) "B2" +string(2) "B2" +===SetC=== +string(2) "A2" +string(2) "C2" +string(2) "C2" +===DONE=== diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index ad62a30161..5053677bc2 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1908,12 +1908,6 @@ static zend_bool do_inherit_property_access_check(HashTable *target_ht, zend_pro zend_hash_del(&ce->default_properties, prot_name, prot_name_length+1); } pefree(prot_name, ce->type & ZEND_INTERNAL_CLASS); - } else if (!(child_info->flags & ZEND_ACC_PRIVATE) && (child_info->flags & ZEND_ACC_STATIC)) { - char *prop_name, *tmp; - - zend_unmangle_property_name(child_info->name, &tmp, &prop_name); - zend_error(E_COMPILE_ERROR, "Cannot redeclare property static %s %s::$%s in class %s", - zend_visibility_string(child_info->flags), parent_ce->name, prop_name, ce->name); } return 0; /* Don't copy from parent */ } else {