Skip to content

Stdlib: mb_convert_encoding() array|string source operand (#3222) - #19084

Merged
PurHur merged 1 commit into
masterfrom
agent/issue-3222-mb-convert-encoding-array
Jul 15, 2026
Merged

PurHur merged 1 commit into
masterfrom
agent/issue-3222-mb-convert-encoding-array

Conversation

@PurHur

@PurHur PurHur commented Jul 15, 2026

Copy link
Copy Markdown
Owner

Summary

  • Implement mb_convert_encoding() array source operand: convert string elements in place, preserve non-string scalars and keys (php-src ext/mbstring/mbstring.c).
  • Enum case operands now throw TypeError with Zend array|string expected type (php-src-strict).

php-src reference

  • ext/mbstring/mbstring.cPHP_FUNCTION(mb_convert_encoding) array branch

PHP implementation

  • ext/mbstring/VmMbstring.phpconvertEncodingSourceArray()
  • ext/mbstring/mb_convert_encoding.php — array vs string dispatch

Verification

./script/docker-exec.sh -- bash -lc 'php test/repro/maintainer_gap_mb_convert_encoding_array.php'
./script/docker-exec.sh -- bash -lc 'php bin/vm.php test/repro/maintainer_gap_mb_convert_encoding_array.php'
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter mb_convert_encoding_array'
ok
ok
OK (2 tests, 2 assertions)

Closes #3222 (array batch slice; iconv/mb_convert_encoding base APIs already registered).

Made with Cursor

Implement php-src array batch conversion for mb_convert_encoding() and
use array|string in enum TypeError messages. Adds compliance + repro guards.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 06f1ad0 into master Jul 15, 2026
@PurHur
PurHur deleted the agent/issue-3222-mb-convert-encoding-array branch July 15, 2026 06:30
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.

Stdlib: iconv() / mb_convert_encoding() — charset conversion (ext/iconv + ext/mbstring parity)

1 participant