Issue: https://github.com/php/php-src/issues/7774
Author: Danack
### Description
Currently
[spl_iterators.h](https://github.com/php/php-src/blob/f583c4dfd222142b043949c6a3399f87cd8a2d47/ext/spl/spl_iterators.h#L22)
includes php_pcre.h so that it can be [reference in the spl_dual_it_object
struct](https://github.com/php/php-src/blob/f583c4dfd222142b043949c6a3399f87cd8a2d47/ext/spl/spl_iterators.h#L139)
but only as a pointer to a .
This makes a dependency on the pcre2.h file for extensions that include the spl_iterators.h.
Apparently this causes problems for people installing extensions that include spl_iteterators
header, presumably due to the common swapping out of PCRE bundled vs system?
Would it be possible to make the header not depend on the php_pcre.h file, either through moving the
relevant parts to a spl-private file or using an void pointer?
btw feel free to close if this is non-trivial. I'd missed the fact that as the countable_ce was
moved from spl to zend, I no longer need to include the spl header anyway....