public Memory getStaticProperty(Environment env, TraceInfo trace, String property, boolean errorIfNotExists,
                                    boolean checkAccess, ClassEntity context, PropertyCallCache callCache, int cacheIndex,
                                    boolean lateStaticCall)
            throws Throwable {
        PropertyEntity entity = callCache == null || env instanceof ConcurrentEnvironment || context != null ? null : callCache.get(env, cacheIndex);

        if (entity == null) {
            boolean saveCache = context == null && callCache != null;

            context = context == null ? env.getLastClassOnStack() : context;
            entity = isInstanceOf(context) ? context.findStaticProperty(property) : findStaticProperty(property);

            if (saveCache && entity != null) {
                callCache.put(env, cacheIndex, entity);
            }
        } else if (entity.getClazz() != context) {
            context = env.getLastClassOnStack();
            entity = isInstanceOf(context) ? context.findStaticProperty(property) : findStaticProperty(property);
        }

        if (entity == null) {
            if (errorIfNotExists)
                env.error(trace, Messages.ERR_ACCESS_TO_UNDECLARED_STATIC_PROPERTY.fetch(name, property));
            return Memory.NULL;
        }

        if (checkAccess) {
            int accessFlag = entity.canAccess(env, lateStaticCall ? context : null);
            if (accessFlag != 0) {
                invalidAccessToProperty(env, trace, entity, accessFlag);
                return Memory.NULL;
            }
        }

        Memory value = entity.getStaticValue(env, trace);

        if (entity.isTyped()) {
            return new ObjectPropertyMemory(env, trace, (ReferenceMemory) value, entity);
        } else {
            return value;
        }
    }
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