Conversation
| ZEND_ASSERT(!((fe->common.fn_flags & ZEND_ACC_CTOR) | ||
| && ((proto->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0 | ||
| && (proto->common.fn_flags & ZEND_ACC_ABSTRACT) == 0))); | ||
| ZEND_ASSERT(!(fe->common.fn_flags & ZEND_ACC_CTOR) || !is_abstract_or_interface_method(proto)); |
| function method1() { parent::method1(); } | ||
| } | ||
|
|
||
| (new Class1())->method1(); |
Comment on lines +16 to +17
|
|
||
| ?> | ||
| --EXPECTF-- | ||
| Fatal error: Type Class1 already has default method Interface1::method1(); cannot override it with another from Interface2 in %s on line %d |
Comment on lines +1166 to +1169
| /* Prevent derived classes from restricting access that was available in parent classes | ||
| * (except deriving from non-abstract ctors). */ | ||
| uint32_t ppp_mask = ZEND_ACC_PPP_MASK; | ||
| if (!checked && check_visibility && (child_flags & ppp_mask) > (parent_flags & ppp_mask)) { |
| #define ZEND_CLASS_CONST_IS_CASE (1 << 6) /* | | | X */ | ||
| /* | | | */ | ||
| /* Class Flags (unused: 30,31) | | | */ | ||
| /* Class Flags (unused: 31). | | | */ |