Index: Zend/zend_compile.c =================================================================== RCS file: /repository/ZendEngine2/zend_compile.c,v retrieving revision 1.547 diff -u -r1.547 zend_compile.c --- Zend/zend_compile.c 25 Feb 2004 17:23:50 -0000 1.547 +++ Zend/zend_compile.c 26 Feb 2004 01:34:10 -0000 @@ -1828,8 +1828,19 @@ } } + /* Perform implementation check. When implementing an interface and the + * check fails, this will result in a fatal error. When inheriting, + * we'll issue an E_STRICT warning, but will continue. + */ if (!zend_do_perform_implementation_check(child)) { - zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with that of %s::%s()", ZEND_FN_SCOPE_NAME(child), child->common.function_name, ZEND_FN_SCOPE_NAME(child->common.prototype), child->common.prototype->common.function_name); + zend_error( + child->common.prototype->common.scope->ce_flags & ZEND_ACC_INTERFACE ? E_COMPILE_ERROR : E_STRICT, + "Declaration of %s::%s() must be compatible with that of %s::%s()", + ZEND_FN_SCOPE_NAME(child), + child->common.function_name, + ZEND_FN_SCOPE_NAME(child->common.prototype), + child->common.prototype->common.function_name + ); } return 0;