zend_hash_move_forward_ex(hash, &pos)) \
#define FOREACH_KEYVAL(pos, array, key, val) FOREACH_HASH_KEYVAL(pos, Z_ARRVAL_P(array), key, val)
#define FOREACH_HASH_KEYVAL(pos, hash, _key, val) \
for ( zend_hash_internal_pointer_reset_ex(hash, &pos); \
zend_hash_move_forward_ex(hash, &pos)) \
#define FOREACH_KEYVAL(pos, array, key, val) FOREACH_HASH_KEYVAL(pos, Z_ARRVAL_P(array), key, val)
#define FOREACH_HASH_KEYVAL(pos, hash, _key, val) \
for ( zend_hash_internal_pointer_reset_ex(hash, &pos); \