Skip to content

SPL: RecursiveIteratorIterator null $mode soft-null E_DEPRECATED (#31622) - #31664

Merged
PurHur merged 1 commit into
masterfrom
agent/advanced-stdlib-31622-rii-null-mode
Aug 16, 2026
Merged

SPL: RecursiveIteratorIterator null $mode soft-null E_DEPRECATED (#31622)#31664
PurHur merged 1 commit into
masterfrom
agent/advanced-stdlib-31622-rii-null-mode

Conversation

@PurHur

@PurHur PurHur commented Aug 16, 2026

Copy link
Copy Markdown
Owner

Summary

  • RecursiveIteratorIterator::__construct(null $mode) emits Zend-shaped E_DEPRECATED then coerces to 0 (LEAVES_ONLY).
  • Same soft-null path for optional $flags.
  • Unit guard Issue31622RecursiveIteratorIteratorNullModeTest (VM + JIT + strict_types TypeError).

Closes #31622

Test plan

  • php bin/vm.php test/repro/maintainer_gap_rii_null_mode_deprecated.php
  • vendor/bin/phpunit --filter Issue31622RecursiveIteratorIteratorNullModeTest → OK (3 tests)

php-src: ext/spl/spl_iterators.czim_RecursiveIteratorIterator___construct / Z_PARAM_LONG.

Made with Cursor

)

Match php-src Z_PARAM_LONG: deprecate then coerce to 0 outside strict_types.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 15b725d into master Aug 16, 2026
@PurHur
PurHur deleted the agent/advanced-stdlib-31622-rii-null-mode branch August 16, 2026 23:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Regression: RecursiveIteratorIterator(null $mode) silent — Zend E_DEPRECATED parameter #2 (ext/spl/spl_iterators.c)

1 participant