public ImplementsResult addInterface(ClassEntity _interface) {
        ImplementsResult result = new ImplementsResult(_interface);

        for (ConstantEntity e : _interface.constants.values()) {
            ConstantEntity origin = constants.get(e.getName());
            if (origin != null && e.getClazz().getId() == _interface.getId() &&
                    (parent == null || parent.constants.get(e.getName()) == null))
                result.signature.addConstant(InvalidConstant.error(InvalidConstant.Kind.INVALID_OVERRIDE, origin, e));
        }

        this.constants.putAll(_interface.constants);

        this.interfaces.put(_interface.getLowerName(), _interface);
        this.instanceOfList.add(_interface.getLowerName());
        this.instanceOfList.addAll(_interface.instanceOfList);

        for (MethodEntity method : _interface.getMethods().values()) {
            MethodEntity implMethod = findMethod(method.getLowerName());
            if (implMethod == method) continue;

            if (implMethod == null) {
                addMethod(method, null);
                if (type == Type.CLASS && !isAbstract)
                    result.signature.add(InvalidMethod.error(InvalidMethod.Kind.NON_EXISTS, method));
            } else {
                implMethod.setPrototype(method);

                if (/*!method.isDynamicSignature() &&*/ !implMethod.isImplementableSignatureFor(method)) { // checking dynamic for only extends
                    result.signature.add(InvalidMethod.error(InvalidMethod.Kind.INVALID_SIGNATURE, implMethod));
                } else if (implMethod.isStatic() && !method.isStatic()) {
                    result.signature.add(InvalidMethod.error(InvalidMethod.Kind.MUST_NON_STATIC, implMethod));
                } else if (!implMethod.isStatic() && method.isStatic()) {
                    result.signature.add(InvalidMethod.error(InvalidMethod.Kind.MUST_STATIC, implMethod));
                }
            }
        }
        return result;
    }
return empty list if success else list with not valid implemented methods in class

@param _interface
@return
jphp-runtime/src/php/runtime/reflection/ClassEntity.java