diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 3423b5a1ebc52..19eeb8758c475 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1506,7 +1506,17 @@ ZEND_API bool zend_never_inline zend_verify_class_constant_type(zend_class_const #ifdef ZEND_DEBUG static zend_never_inline ZEND_COLD bool zend_check_dimension_interfaces_implemented(const zend_object *object, bool has_offset, int type) { - return true; + /* ext/ffi CData class is currently weird */ + if (zend_string_equals_literal_ci(object->ce->name, "FFI\\CData")) { + return true; + } + /* ext/zend_test class is used for debugging and checking behaviour */ + if (zend_string_equals_literal_ci(object->ce->name, "DimensionHandlersNoArrayAccess")) { + return true; + } + if (instanceof_function(object->ce, zend_ce_arrayaccess)) { + return true; + } switch (type) { case BP_VAR_R: case BP_VAR_IS: