123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- typedef struct _zend_object_iterator zend_object_iterator;
- typedef struct _zend_object_iterator_funcs {
-
- void (*dtor)(zend_object_iterator *iter);
-
- int (*valid)(zend_object_iterator *iter);
-
- zval *(*get_current_data)(zend_object_iterator *iter);
-
- void (*get_current_key)(zend_object_iterator *iter, zval *key);
-
- void (*move_forward)(zend_object_iterator *iter);
-
- void (*rewind)(zend_object_iterator *iter);
-
- void (*invalidate_current)(zend_object_iterator *iter);
-
- HashTable *(*get_gc)(zend_object_iterator *iter, zval **table, int *n);
- } zend_object_iterator_funcs;
- struct _zend_object_iterator {
- zend_object std;
- zval data;
- const zend_object_iterator_funcs *funcs;
- zend_ulong index;
- };
- typedef struct _zend_class_iterator_funcs {
- zend_function *zf_new_iterator;
- zend_function *zf_valid;
- zend_function *zf_current;
- zend_function *zf_key;
- zend_function *zf_next;
- zend_function *zf_rewind;
- } zend_class_iterator_funcs;
- BEGIN_EXTERN_C()
- ZEND_API zend_object_iterator* zend_iterator_unwrap(zval *array_ptr);
- ZEND_API void zend_iterator_init(zend_object_iterator *iter);
- ZEND_API void zend_iterator_dtor(zend_object_iterator *iter);
- ZEND_API void zend_register_iterator_wrapper(void);
- END_EXTERN_C()
|